添加列语法

我试图以编程方式向表 Employes 添加标识列。不知道我的语法哪里出错了。

ALTER TABLE Employees
ADD COLUMN EmployeeID int NOT NULL IDENTITY (1, 1)


ALTER TABLE Employees ADD CONSTRAINT
PK_Employees PRIMARY KEY CLUSTERED
(
EmployeeID
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

我做错了什么?我试图导出这个脚本,但是 SQLMgmtStudio 做了一个完整的临时表重命名工作。

更新 : 我认为第一条语句“靠近关键字‘ COLUMN’的语法不正确”让人窒息

217654 次浏览

ADD COLUMN中移除 COLUMN

ALTER TABLE Employees
ADD EmployeeID numeric NOT NULL IDENTITY (1, 1)


ALTER TABLE Employees ADD CONSTRAINT
PK_Employees PRIMARY KEY CLUSTERED
(
EmployeeID
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

如果您试图在表的开头添加一个列(因为这比改变顺序更容易) ,那么它可以对临时表进行重命名。此外,如果 EmployeeID 表中有数据,则必须插入 select * ,以便计算 EmployeeID。

向表中添加列的正确语法是:

ALTER TABLE table_name
ADD column_name column-definition;

在你的情况下,它将是:

ALTER TABLE Employees
ADD EmployeeID int NOT NULL IDENTITY (1, 1)

要添加多列,请使用括号:

ALTER TABLE table_name
ADD (column_1 column-definition,
column_2 column-definition,
...
column_n column_definition);

SQL SERVER 中的 COLUMN关键字仅用于修改:

ALTER TABLE table_name
ALTER COLUMN column_name column_type;

这就是向表中添加新列的方法

ALTER TABLE [tableName]
ADD ColumnName Datatype

例如

ALTER TABLE [Emp]
ADD Sr_No Int

如果你想让它自动增量

ALTER TABLE [Emp]
ADD Sr_No Int IDENTITY(1,1) NOT NULL