在SQL Server(在我的情况下,2005)中,如何使用T-SQL将identity属性添加到现有表列?
就像是:
alter table tblFoo alter column bar identity(1,1)
JohnFx.. 31
我不相信你能做到这一点.您最好的办法是创建一个新的标识列,并使用标识插入命令复制数据(如果您确实要保留旧值).
这是一篇很好的文章,详细描述了这个过程:http://www.mssqltips.com/tip.asp? tt = 1397
我不相信你能做到这一点.您最好的办法是创建一个新的标识列,并使用标识插入命令复制数据(如果您确实要保留旧值).
这是一篇很好的文章,详细描述了这个过程:http://www.mssqltips.com/tip.asp? tt = 1397
Vikash发布的解决方案不起作用; 它在SQL Management Studio中产生"语法不正确"错误(2005,指定的OP).SQL Server的"Compact Edition"支持这种操作的事实只是一个捷径,因为真正的过程更像Robert&JohnFX所说的 - 创建一个重复的表,填充数据,重命名原始和新表适当.
如果要保留字段中已存在的需要为标识的值,可以执行以下操作:
CREATE TABLE tname2 (etc.) INSERT INTO tname2 FROM tname1 DROP TABLE tname1 CREATE TABLE tname1 (with IDENTITY specified) SET IDENTITY_INSERT tname1 ON INSERT INTO tname1 FROM tname2 SET IDENTITY_INSERT tname1 OFF DROP tname2
当然,不建议删除并重新创建实时代码使用的表(tname1)!:)