SQL Server與DB2修改數(shù)據(jù)表列的操作對(duì)比與總結(jié)
SQL Server數(shù)據(jù)庫(kù)與DB2數(shù)據(jù)庫(kù)的操作有很多的不同之處,本文我們對(duì)SQL Server與DB2修改數(shù)據(jù)表列的操作進(jìn)行了對(duì)比與總結(jié),接下來(lái)我們就開(kāi)始介紹這部分內(nèi)容。
SQL Server數(shù)據(jù)庫(kù):
- 創(chuàng)建一測(cè)試數(shù)據(jù)表
- create table test(username varchar(10), userinfo varchar(200))
- 添加表列
- alter table test add usertest varchar(100)
- 刪除表列
- alter table test drop column usertest
- 修改表列字段類(lèi)型
- alter table test alter column userinfo varchar(300)
- 修改表列字段名
- exec sp_rename 'test.userinfo', 'userdesc', 'column';
- 修改表名
- exec sp_rename 'test', 'test1', 'object';
綜上,可以看出在SQL SERVER中添加、刪除數(shù)據(jù)列,修改表列字段類(lèi)型都可以直接通過(guò)SQL簡(jiǎn)單實(shí)現(xiàn);但是修改列名和表名,則需要調(diào)用sp_rename存儲(chǔ)過(guò)程,而通過(guò)幫助手冊(cè)可以得知sp_rename可以更改當(dāng)前數(shù)據(jù)庫(kù)中用戶(hù)創(chuàng)建對(duì)象(如表、列或用戶(hù)定義數(shù)據(jù)類(lèi)型)的名稱(chēng)。同時(shí)注意觀察sysobjects表可以看出該表的ID、創(chuàng)建時(shí)間等信息未發(fā)生變化。
需要注意:通過(guò)sp_rename存儲(chǔ)過(guò)程重命名存儲(chǔ)過(guò)程和視圖后,需要清空過(guò)程高速緩存以確保所有相關(guān)的存儲(chǔ)過(guò)程和視圖都重新編譯。
DB2數(shù)據(jù)庫(kù):
- 創(chuàng)建一測(cè)試數(shù)據(jù)表
- create table test(username varchar(10), userinfo varchar(200))
- 添加新列
- ALTER TABLE ADMINISTRATOR.TEST
- ADD COLUMN USERTEST VARGRAPHIC (100) NOT NULL ;
- 刪除一列
- CALL SYSPROC.ALTOBJ
- ( 'APPLY_CONTINUE_ON_ERROR'
- , 'CREATE TABLE ADMINISTRATOR.TEST ( USERNAME VARCHAR (10) NOT NULL , USERINFO VARCHAR (100) NOT NULL )
- ORGANIZE BY DIMENSIONS ( USERINFO) IN USERSPACE1 ', 1, ? );
- 更改列類(lèi)型
- ALTER TABLE ADMINISTRATOR.TEST
- ALTER COLUMN USERINFO SET DATA TYPE VARCHAR ( 100 ) ;
- 修改表列字段名
- CALL SYSPROC.ALTOBJ ( 'APPLY_CONTINUE_ON_ERROR'
- , 'CREATE TABLE ADMINISTRATOR.TEST ( USERNAME VARCHAR (10) NOT NULL , USERINFO VARCHAR (100) NOT NULL )
- ORGANIZE BY DIMENSIONS ( USERINFO) IN USERSPACE1 ', 1, ? );
- 修改表名
- RENAME TABLE ADMINISTRATOR.TEST TO TEST1;
可以看出DB2中增加列、更改列類(lèi)型以及修改表名可以通過(guò)簡(jiǎn)單的SQL來(lái)進(jìn)行實(shí)現(xiàn),但是刪除列以及修改列名則需要進(jìn)行特殊的處理。
而在刪除列及修改列名時(shí),會(huì)有以下的提示:
通過(guò)該提示信息可以發(fā)現(xiàn),DB2中刪除列及修改列名的過(guò)程是首先建立臨時(shí)表,將原表中的數(shù)據(jù)保存到臨時(shí)表中,并按新定義(刪除列,修改列)來(lái)重新創(chuàng)建表以及相關(guān)的索引等從屬對(duì)象,緊接將臨時(shí)表中所保存的數(shù)據(jù)還原到新表中,***檢查數(shù)據(jù)和關(guān)系的完整性。
關(guān)于SQL Server與DB2修改數(shù)據(jù)表列的操作的相關(guān)內(nèi)容就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】






