在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)。 当我发布这个答案时,我会说这是合理的
展开您的数据库,展开您的表格,右键单击您的表格,然后从下拉菜单中selectdevise 。
现在去下面的列属性向下滚动,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。