将IDENTITY添加到SQL SERVER 2008中的列

时间:2014-04-15 07:13:45

标签: sql-server sql-server-2008

create table stud(
Student_Id int primary key,
Student_Name varchar(30),
Student_surname varchar(12),
Student_Initial varchar(10))

我创造了一个桌布。现在我想使用alter query

将Identity添加到Student_Id列
alter table stud alter column student_Id int identity   

我收到错误

关键字' identity'附近的语法不正确。

5 个答案:

答案 0 :(得分:2)

您无法将现有列作为IDENTITY列。您可以删除并重新创建包含标记为IDENTITY', or drop the column and add a new IDENTITY`列的列的表。

答案 1 :(得分:2)

ALTER TABLE MyTable
  ADD ID INT IDENTITY(1,1) NOT NULL

答案 2 :(得分:1)

<强>语法:

IDENTITY [ (seed , increment) ]

像这样改变你的表:

create table stud( 
Student_Id int IDENTITY(1,1) primary key,
Student_Name varchar(30), 
Student_surname varchar(12), 
Student_Initial varchar(10));

答案 3 :(得分:1)

如果Stud包含数据,您可以随时制作影子表,例如Stud2,其中包含Identity列,然后运行

ALTER TABLE dbo.stud SWITCH TO dbo.stud2

然后你可以重新研究Stud2,删除Stud,并将Stud2重命名为Stud。

这样,您可以在使用Identity删除/重新创建表时保留数据。

答案 4 :(得分:0)

您可以使用以下查询来设置身份

CREATE TABLE [dbo].[stud](
    [Student_Id] [int] IDENTITY(1,1) NOT NULL,
    [Student_Name] [varchar](30) NULL,
    [Student_surname] [varchar](12) NULL,
    [Student_Initial] [varchar](10) NULL,
PRIMARY KEY CLUSTERED 
(
    [Student_Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

设置ANSI_PADDING OFF GO