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

2021-11-30 00:00:00 sql sql-server auto-increment

我设置了一个当前没有主键的表.我需要做的就是添加一个主键,不为空,auto_increment.

I have a table set up that currently has no primary key. All I need to do is add a primary key, no null, auto_increment.

我正在使用 Microsoft SQL Server 数据库.我知道它不能在单个命令中完成,但我尝试的每个命令都不断返回语法错误.

I'm working with a Microsoft SQL Server database. I understand that it can't be done in a single command but every command I try keeps returning syntax errors.

编辑 ---------------

edit ---------------

我已经创建了主键,甚至将其设置为非空.但是,我无法设置auto_increment.

I have created the primary key and even set it as not null. However, I can't set up the 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

I'm using NVARCHAR because it wouldn't let me set NOT NULL under int

推荐答案

它可以在一个命令中完成.您需要为自动编号"设置 IDENTITY 属性:

It can be done in a single command. You need to set the IDENTITY property for "auto number":

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

更准确地说,设置命名表级约束:

More precisely, to set a named table level constraint:

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

请参阅 MSDN 上的ALTER TABLE and IDENTITY

See ALTER TABLE and IDENTITY on MSDN

相关文章