在SQL Server Management Studio 2012中自动增加主键

如何自动增加SQL Server数据库表中的主键,我已经通过论坛,但看不到如何。

我看过的属性,但看不到一个选项,我已经看到了一个答案,你去的身份规范属性,并将其设置为是,并将身份增量设置为1,但该部分是灰色的,我可以不会将“否”更改为“是”。

必须有一个简单的方法来做到这一点,但我找不到它。

确保Key列的数据types是int ,然后手动设置标识,如图所示

在这里输入图像描述

或者只是运行这个代码

 -- ID is the name of the [to be] identity column ALTER TABLE [yourTable] DROP COLUMN ID ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1) 

代码将运行,如果ID不是表中唯一的列

图像参考FIFO

在创build表格时,可以按如下方式创build一个IDENTITY列:

 CREATE TABLE ( ID_column INT NOT NULL IDENTITY(1,1) PRIMARY KEY, ... ); 

IDENTITY属性将自动增加从1开始的列。(请注意,列的数据types必须是整数。)如果要将其添加到现有列,请使用ALTER TABLE命令。

编辑:
testing了一下,我找不到通过各种表格的“列属性”窗口来更改标识属性的方法。 我想如果你想使列成为一个标识列,你必须使用ALTER TABLE命令。

您必须展开“标识”部分以显示增量和种子。

在这里输入图像描述

编辑:我认为你会有一个整数数据types,而不是字符(10)。 当我发布这个答案时,我会说这是合理的

展开您的数据库,展开您的表格,右键单击您的表格,然后从下拉菜单中selectdeviseIT看起来像这样

现在去下面的列属性向下滚动,find身份规范 ,展开它,你会发现是身份证是。 现在select下方的Identity Increment ,给出你想增加的值。 在这里输入图像描述

也许我错过了一些东西,但为什么不能用SEQUENCE对象? 这不是你在找什么?

例:

 CREATE SCHEMA blah. GO CREATE SEQUENCE blah.blahsequence START WITH 1 INCREMENT BY 1 NO CYCLE; CREATE TABLE blah.de_blah_blah (numbers bigint PRIMARY KEY NOT NULL ......etc 

当引用INSERT命令中的序列时,只需使用:

 NEXT VALUE FOR blah.blahsequence 

SEQUENCE的更多信息和选项

当你使用数据types:int时,你可以select你想获得自动增加的行,并转到列属性标签。 在那里你可以设置标识为“是”。 自动增量的起始值也可以在那里编辑。 希望我能帮忙;)

要小心,如果你想ID元素是contigius或不。 由于SQLSERVER ID可以跳过1000。

例子:在重新启动之后重新启动ID = 11之前,在表格中插入新的一行,那么这个ID将是1012。

如果表已经填充,则无法将列更改为IDENTITY列或将其转换为非IDENTITY列。 您需要导出所有数据,然后您可以将列types更改为IDENTITY,反之亦然,然后再导入数据。 我知道这是一个痛苦的过程,但我相信除了这篇文章中提到的使用顺序之外别无select。