如何自动增加SQL Server数据库表中的主键?我已经通过论坛看了一下,但不知道如何做到这一点。

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

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


当前回答

当你使用Data Type: int时,你可以选择你想要自动递增的行,然后转到列属性标签。在这里,您可以将身份设置为“yes”。自动递增的起始值也可以在那里编辑。希望我能帮上忙;)

其他回答

确保Key列的数据类型是int,然后手动设置identity,如图所示

或者只运行这段代码

-- 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不是表中唯一的列,代码将运行

图像引用先进先出

我有这个问题,我已经创建了表,不能在不删除表的情况下更改它,所以我所做的是: (不确定他们什么时候实现的,但在SQL 2016中就有了)

右键单击对象资源管理器中的表:

脚本表> DROP和CREATE到>新的查询编辑器窗口

然后对Josien说的剧本进行编辑;滚动到CREATE TABLE所在的底部,找到你的主键,并将IDENTITY(1,1)附加到逗号前的末尾。运行脚本。

由于这个问题,DROP和CREATE脚本对我也很有帮助。(由生成的脚本处理。)

在创建表时,可以使用关键字IDENTITY和PRIMARY KEY约束作为列的数据类型。 例:

StudentNumber IDENTITY(1,1) PRIMARY KEY

这里的第一个‘1’表示起始值,第二个‘1’表示递增值。

当你使用Data Type: int时,你可以选择你想要自动递增的行,然后转到列属性标签。在这里,您可以将身份设置为“yes”。自动递增的起始值也可以在那里编辑。希望我能帮上忙;)

创建表时,可以创建IDENTITY列,如下所示:

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

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

编辑: 测试了一点,我找不到一种方法来改变身份属性通过列属性窗口为各种表。我想如果你想让一个列成为一个标识列,你必须使用ALTER TABLE命令。