如何在SQL Server数据库中添加自动增量主键?
我设置了一个当前没有主键的表。我需要做的就是添加一个主键,不为 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
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
.
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 ---------------
I have created the primary key and even set it as not null. However, I can't set up the auto_increment
.
I've tried:
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
I'm using NVARCHAR
because it wouldn't let me set NOT NULL
under int
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
它可以通过单个命令完成。您需要为“自动编号”设置 IDENTITY 属性:
更准确地说,要设置命名表级别约束:
请参阅 ALTER TABLE 和 IDENTITY
It can be done in a single command. You need to set the IDENTITY property for "auto number":
More precisely, to set a named table level constraint:
See ALTER TABLE and IDENTITY on MSDN
如果表已经包含数据并且您想要将其中一列更改为identity:
首先创建一个具有相同列的新表并指定主键-kolumn:
然后使用a将原始表中的所有行复制到新表标准
insert
语句。然后删除原来的表。
最后使用
sp_rename
将TempTable
重命名为您想要的任何名称:http://msdn.microsoft.com/en-us/library/ms188351.aspx
If the table already contains data and you want to change one of the columns to identity:
First create a new table that has the same columns and specify the primary key-kolumn:
Then copy all rows from the original table to the new table using a standard
insert
-statement.Then drop the original table.
And finally rename
TempTable
to whatever you want usingsp_rename
:http://msdn.microsoft.com/en-us/library/ms188351.aspx
您还可以通过 SQL Server Management Studio 执行此操作。
然后,将来如果您希望能够编写此类内容的脚本,您可以右键单击刚刚修改的表并选择
以便您可以亲自查看执行此操作的正确语法。
You can also perform this action via SQL Server Management Studio.
Then in the future if you want to be able to just script this kind of thing out you can right click on the table you just modified and select
so that you can see for yourself the correct syntax to perform this action.
如果你有专栏,那就很容易了。
使用设计器,您可以将列设置为标识(1,1):右键单击表→设计→部分左侧(右键单击)→属性→在标识列中,选择#column。
属性:
身份列:
If you have the column it's very easy.
Using the designer, you could set the column as an identity (1,1): right click on the table → design → in part left (right click) → properties → in identity columns, select #column.
Properties:
Identity column:
在 SQL Server 2008 中:
In SQL Server 2008:
你可以试试这个...
you can try this...