Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server 2008:更改标识类型_Sql Server_Alter Table - Fatal编程技术网

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没有。你不能有两个同名的列。是的,就是这样。创建新列,删除旧列,重命名新列。