SQL Server與DB2修改數據表列的操作對比與總結
SQL Server數據庫與DB2數據庫的操作有很多的不同之處,本文我們對SQL Server與DB2修改數據表列的操作進行了對比與總結,接下來我們就開始介紹這部分內容。
SQL Server數據庫:
- 創建一測試數據表
- create table test(username varchar(10), userinfo varchar(200))
- 添加表列
- alter table test add usertest varchar(100)
- 刪除表列
- alter table test drop column usertest
- 修改表列字段類型
- alter table test alter column userinfo varchar(300)
- 修改表列字段名
- exec sp_rename 'test.userinfo', 'userdesc', 'column';
- 修改表名
- exec sp_rename 'test', 'test1', 'object';
綜上,可以看出在SQL SERVER中添加、刪除數據列,修改表列字段類型都可以直接通過SQL簡單實現;但是修改列名和表名,則需要調用sp_rename存儲過程,而通過幫助手冊可以得知sp_rename可以更改當前數據庫中用戶創建對象(如表、列或用戶定義數據類型)的名稱。同時注意觀察sysobjects表可以看出該表的ID、創建時間等信息未發生變化。
需要注意:通過sp_rename存儲過程重命名存儲過程和視圖后,需要清空過程高速緩存以確保所有相關的存儲過程和視圖都重新編譯。
DB2數據庫:
- 創建一測試數據表
- 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, ? );
- 更改列類型
- 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中增加列、更改列類型以及修改表名可以通過簡單的SQL來進行實現,但是刪除列以及修改列名則需要進行特殊的處理。
而在刪除列及修改列名時,會有以下的提示:
通過該提示信息可以發現,DB2中刪除列及修改列名的過程是首先建立臨時表,將原表中的數據保存到臨時表中,并按新定義(刪除列,修改列)來重新創建表以及相關的索引等從屬對象,緊接將臨時表中所保存的數據還原到新表中,***檢查數據和關系的完整性。
關于SQL Server與DB2修改數據表列的操作的相關內容就介紹到這里了,希望本次的介紹能夠對您有所收獲!
【編輯推薦】