迁移数据,可以复制自动编号啦!
SET IDENTITY_INSERT DATA ON
INSERT INTO DATA(ID, A1, A2) SELECT ID, UserName, Email FROM OLDDATA
A. 重命名表
下例将表 customers 重命名为 custs。
EXEC sp_rename 'customers', 'custs'
B. 重命名列
下例将表 customers 中的列 contact title 重命名为 title。
EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'
C.删除列
ALTER TABLE 表名 DROP COLUMN 列名
D.添加列
ALTER TABLE 表名 ADD 列名 VARCHAR(20) NULL"
---------以下为(创建新列属性)然后(复制旧列数据)后再(删除旧列名)---------------------------------
--添加列
alter table table_A add column_C varchar(20)
go
--添加数据
update table_A set column_C=column_B
go
--添加默认
alter table table_A add constraint myColumnDef default 'c' for column_C
go
--删除旧默认
declare @name varchar(20)
select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('tablename') and b.id=a.cdefault and a.name='column_B' and b.name like 'DF%'
exec('alter table table_A drop constraint '+@name)
go
--删除旧列
alter table table_A drop column column_B
go
----------------以下为删除带默认值的列名-------------
declare @name varchar(20)
select @name = b.name from sysobjects b join syscolumns a on
b.id = a.cdefault where a.id = object_id('table_name') and a.name = 'column_name'
exec('alter table test drop constraint '+@name)
去掉列的默认值后(其实是去掉列约束),再执行alter table table_name drop column column_name 语句,列被删除了。当然也可以一起执行整个语句。