Sql server SQL Server 2008:更改标识类型
我有一个现有的表Sql server SQL Server 2008:更改标识类型,sql-server,alter-table,Sql Server,Alter Table,我有一个现有的表MCheckTypes,它有一个主键列ID。我要做的是修改表,在主键上添加标识类型。我不想丢掉一张桌子,重新创建一张新的。我已经在谷歌上搜索过了,但是运气不好。下面是我的剧本 ALTER TABLE MCheckTypes ALTER COLUMN [ID] INT IDENTITY(1, 1) NOT NULL 下面是错误消息 味精156,第15级,状态1,第1行 关键字“IDENTITY”附近的语法不正确 无法将现有列“转换”为标识列-必须创建一个新列作为INT-I
MCheckTypes
,它有一个主键列ID
。我要做的是修改表,在主键上添加标识类型。我不想丢掉一张桌子,重新创建一张新的。我已经在谷歌上搜索过了,但是运气不好。下面是我的剧本
ALTER TABLE MCheckTypes
ALTER COLUMN [ID] INT IDENTITY(1, 1) NOT NULL
下面是错误消息
味精156,第15级,状态1,第1行关键字“IDENTITY”附近的语法不正确 无法将现有列“转换”为标识列-必须创建一个新列作为INT-IDENTITY:
ALTER TABLE MCheckTypes
ADD NewID INT IDENTITY (1, 1) NOT NULL;
你现有的ID列只是没有标识的主键吗?是的,绝对是的,ID列是存在的,它是Raj的主键,我在谷歌上已经看到了那个链接。但答案不起作用。这张图片正是我的情况-我想改变身份类型。太烦人了,所以我需要删除现有的列并重新创建一个新的?SQL为什么有这样的限制?@Bryan没有。你可以保留当前的限制。创建新ID列后,您可以删除旧列并将新ID重命名为ID。但基于旧ID的所有引用都将丢失。但我需要相同的字段名,因此不需要调整我的应用程序代码。有可能在一个表上有相同的字段名吗?@Bryan没有。你不能有两个同名的列。是的,就是这样。创建新列,删除旧列,重命名新列。