簡體   English   中英

更改表添加列語法

[英]Alter Table Add Column Syntax

我正在嘗試以編程方式將一個標識列添加到表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'附近的語法不正確。”

只是刪除COLUMNADD 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]

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

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

將列添加到表中的正確語法是:

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;

如果您嘗試將列添加到表的開頭,則可能正在進行臨時表重命名(因為這比更改順序更容易)。 此外,如果Employees表中有數據,則必須執行insert select *,以便計算EmployeeID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM