在SQL表中自动增加主键

时间:2010-07-29 02:53:43

标签: sql-server-2008 ssms

使用Sql Express Management Studio 2008 GUI(不带编码),如何使主键自动递增?

让我解释一下:有一个表有一个名为“id”的列,该列的项目被设置为主键。我想让这个列自动递增,但是如何?

干杯

6 个答案:

答案 0 :(得分:104)

  1. 大概是你在设计表。如果不是:右键单击表格名称 - “设计”。
  2. 点击所需的列。
  3. 在“列属性”(位于底部),滚动到“身份规范”部分,展开它,然后切换“(是身份) “至”“。
  4. enter image description here

答案 1 :(得分:10)

右键单击SSMS中的表,“设计”它,然后单击id列。在属性中,设置要播种的标识@例如1并且增加1 - 保存并完成。

答案 2 :(得分:9)

虽然在GUI中无法执行以下操作,但您可以使用IDENTITY数据类型(start,increment)自动增量:

CREATE TABLE "dbo"."TableName"
(
   id int IDENTITY(1,1) PRIMARY KEY NOT NULL,
   name varchar(20),
);

insert语句应列出除id列之外的所有列(它将填充自动增量值):

INSERT INTO "dbo"."TableName" (name) VALUES ('alpha');
INSERT INTO "dbo"."TableName" (name) VALUES ('beta');

的结果
SELECT id, name FROM "dbo"."TableName";

将是

id    name
--------------------------
1     alpha
2     beta

答案 3 :(得分:6)

我在这台机器上没有Express Management Studio,因此我将基于内存。我认为您需要将列设置为“IDENTITY”,并且在可以展开的属性下应该有[+],并将自动增量设置为true。

答案 4 :(得分:6)

对于那些有问题的人,如果根据以下答案更改后仍然没有让你保存,请执行以下操作:

工具 - >选项 - >设计师 - >表和数据库设计者 - >取消选中“阻止保存需要重新创建表格的更改”框 - >行

并尝试保存,因为它应该立即工作

答案 5 :(得分:0)

我认为有一种方法可以在定义阶段这样做

创建表员工( id int identity, name varchar(50), 主键(id) ).. 我试图看看是否有办法改变现有的表并将列作为Identity在理论上看起来不可能(因为现有值可能需要修改)