如何在 SQL Server 数据库中添加 auto_increment 主键?
Posted
技术标签:
【中文标题】如何在 SQL Server 数据库中添加 auto_increment 主键?【英文标题】:How do I add a auto_increment primary key in SQL Server database? 【发布时间】:2011-10-10 07:14:11 【问题描述】:我设置了一个当前没有主键的表。我需要做的就是添加一个primary key, no null, auto_increment
。
我正在使用Microsoft SQL Server
数据库。我知道它不能在单个命令中完成,但我尝试的每个命令都会返回语法错误。
编辑---------------
我已经创建了主键,甚至将其设置为非空。但是,我无法设置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 列? ***.com/questions/4862385/… 出于兴趣,auto_increment
语法从何而来?是访问吗?
@Kieren: auto_increment
用于 mysql(也可能在其他地方)。
Auto increment primary key in SQL Server Management Studio 2012的可能重复
【参考方案1】:
它可以在一个命令中完成。您需要为“自动编号”设置 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),
CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED (MyTableID)
请参阅 MSDN 上的 ALTER TABLE and IDENTITY
【讨论】:
完美!谢谢你的帮助。一旦计时器允许我接受答案,我就会接受。 :D 可以,但是正确的语法是没有第二个“ADD”,它是:ALTER TABLE MyTable ADD MytableID int NOT NULL IDENTITY (1,1), CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED (MyTableID) 【参考方案2】:你可以试试这个... 更改表 Your_Table ADD table_ID int NOT NULL PRIMARY KEY auto_increment;
【讨论】:
【参考方案3】:如果你有专栏,那就很容易了。
使用设计器,您可以将列设置为标识(1,1):右键单击表格→设计→部分左侧(右键单击)→属性→在标识列中,选择#column。
属性:
身份列:
【讨论】:
【参考方案4】:在 SQL Server 2008 中:
右键单击表格 去设计 选择数值数据类型 将名称添加到新列 将身份规范设为“是”【讨论】:
【参考方案5】:如果表已经包含数据并且您想将其中一列更改为标识:
首先新建一个列相同的新表,并指定主键-kolumn:
create table TempTable
(
Id int not null identity(1, 1) primary key
--, Other columns...
)
然后使用标准的insert
-statement 将原始表中的所有行复制到新表中。
然后删除原始表。
最后使用sp_rename
将TempTable
重命名为您想要的任何名称:
http://msdn.microsoft.com/en-us/library/ms188351.aspx
【讨论】:
这个创建表的语法是良好的实践,正如this 在 cmets 中的帖子的作者所建议的那样,希望对某人有所帮助。【参考方案6】:您也可以通过 SQL Server Management Studio 执行此操作。
右键单击您选择的表 -> 修改
在要设置为PK的字段上右击-->设置主键
在“列属性”下将“标识规范”设置为“是”,然后指定起始值和增量值。
那么以后如果您希望能够编写这种事情的脚本,您可以右键单击刚刚修改的表并选择
"SCRIPT TABLE AS" --> 创建于
以便您自己查看执行此操作的正确语法。
【讨论】:
以上是关于如何在 SQL Server 数据库中添加 auto_increment 主键?的主要内容,如果未能解决你的问题,请参考以下文章
如何在我添加到项目中的 SQL Server Express 数据库中创建用户?
如何在 SQL Server 数据库中添加 auto_increment 主键?
如何在 SQL Server 表中添加“最后修改”和“创建”列?
如何在 SQL Server 2008 R2 中添加分析服务器?