Identity的命名默认约束

时间:2017-12-01 19:31:54

标签: sql sql-server tsql

假设我有以下表格创建脚本。我希望EmployeeID列的命名默认约束使用Identity(1,1)

CREATE TABLE dbo.Employee
(
    EmployeeID INT NOT NULL ,
    LastName VARCHAR(100) NOT NULL,
    FirstName VARCHAR(100) NOT NULL,
 CONSTRAINT PK_Employee PRIMARY KEY NONCLUSTERED 
    (
        EmployeeID ASC
    )
) 
GO

ALTER TABLE Employee ADD CONSTRAINT UDF_Employee_EmployeeID DEFAULT IDENTITY(1,1) FOR EmployeeID
GO

我收到以下错误

  

关键字“IDENTITY”

附近的语法不正确

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

这应该这样做:

CREATE TABLE dbo.Employee
(
     EmployeeID INT NOT NULL IDENTITY(1,1),
     LastName VARCHAR(100) NOT NULL,
     FirstName VARCHAR(100) NOT NULL,

     CONSTRAINT PK_Employee 
         PRIMARY KEY NONCLUSTERED (EmployeeID ASC)
)

DEFAULT IDENTITY不是正确的语法,因为IDENTITY是列属性而不是约束,所以不能使用ALTER添加它(或者在创建列之后添加它)。< / p>