如何在SQL Server数据库中添加一个auto_increment主键?

我有一个表,目前没有主键。 我需要做的只是添加一个主键,没有null,auto_increment。

我正在使用Microsoft SQL Server数据库。 我明白,它不能在一个单一的命令,但我尝试每一个命令不断返回语法错误。

编辑—————

我已经创build了主键,甚至把它设置为非空。 但是,我不能设置auto_increment。

我试过了:

ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment 

我正在使用NVARCHAR,因为它不会让我在int下设置NOT NULL

它可以在一个命令中完成。 您需要将IDENTITY属性设置为“自动编号”

 ALTER TABLE MyTable ADD mytableID int NOT NULL IDENTITY (1,1) PRIMARY KEY 

更确切地说,要设置一个命名表级约束

 ALTER TABLE MyTable ADD MytableID int NOT NULL IDENTITY (1,1), ADD CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED (MyTableID) 

请参阅MSDN上的ALTER TABLE和IDENTITY

如果该表已经包含数据,并且想要将其中一列更改为标识:

首先创build一个具有相同列的新表,并指定主键 – 列:

 create table TempTable ( Id int not null identity(1, 1) primary key --, Other columns... ) 

然后使用标准insert语句将原始表中的所有行复制到新表中。

然后放下原来的表格。

最后,使用sp_renameTempTable重命名为任何你想要的:

http://msdn.microsoft.com/en-us/library/ms188351.aspx

您也可以通过SQL Server Management Studio执行此操作。

右键单击您select的表格 – >修改

右键点击你想设置的字段PK – >设置主键

在“列属性”下,将“标识规范”设置为“是”,然后指定起始值和增量值。

然后,如果您希望能够编写这种types的东西,您可以右键单击刚刚修改的表格,然后select

“SCRIPT TABLE AS” – > CREATE TO

这样你可以看到自己正确的语法来执行这个动作。

如果你有这个专栏,那很简单。

使用devise器,您可以将列设置为标识(1,1):右键单击表→devise→左部分(右键单击)→属性→在标识列中,select#列。


属性

在这里输入图像说明

标识列

在这里输入图像说明

在SQL Server 2008中:

  • 右键单击表格
  • 去devise
  • select数字数据types
  • 将名称添加到新列
  • 使标识规范为“是”

你可以试试这个… ALTER TABLE Your_Table ADD table_ID int NOT NULL PRIMARY KEY auto_increment;