更改表添加列语法

时间:2009-04-27 16:57:25

标签: sql sql-server tsql ddl

我正在尝试以编程方式将一个标识列添加到表Employees中。不确定我的语法错误。

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]

我做错了什么?我尝试导出脚本,但SQL Mgmt Studio会对整个Temp Table进行重命名。

更新: 我认为在第一个语句中“关键字'COLUMN'附近的语法不正确”会让人感到窒息。“

4 个答案:

答案 0 :(得分:187)

只需从COLUMN

中删除ADD 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]

答案 1 :(得分:8)

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

ALTER TABLE [tableName]
ADD ColumnName Datatype

<强> E.g

ALTER TABLE [Emp]
ADD Sr_No Int

如果你想让它自动增加

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

答案 2 :(得分:5)

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

    CGRect rect = [string boundingRectWithSize:CGSizeMake(1000, 21)
                                               options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont fontWithName:@"Font-Name" size:fontSize]} context:nil];

在你的情况下,它将是:

enum

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

ALTER TABLE table_name
  ADD column_name column-definition;
SQL SERVER中的

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);

答案 3 :(得分:0)

如果您尝试将列添加到表的开头,则可能正在进行临时表重命名(因为这比更改顺序更容易)。此外,如果Employees表中有数据,则必须执行insert select *,以便计算EmployeeID。