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修改数据表列的操作的相关内容就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】