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
6条答案
按热度按时间eblbsuwk1#
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
bkkx9g8r2#
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
hgqdbh6s3#
You can also perform this action via SQL Server Management Studio.
Right click on your selected table -> Modify
Right click on the field you want to set as PK --> Set Primary Key
Under Column Properties set "Identity Specification" to Yes, then specify the starting value and increment value.
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
"SCRIPT TABLE AS" --> CREATE TO
so that you can see for yourself the correct syntax to perform this action.
g0czyy6m4#
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:
xdnvmnnf5#
In SQL Server 2008:
apeeds0o6#
you can try this...