151

プログラムでID列をテーブル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]

私は何が間違っているのですか?スクリプトをエクスポートしようとしましたが、SQLMgmtStudioはTempTable全体の名前変更を行います。

更新:「キーワード「COLUMN」の近くの構文が正しくありません」という最初のステートメントが詰まっていると思います。

4

4 に答える 4

206

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]
于 2009-04-27T17:02:01.203 に答える
16

これは、テーブルに新しい列を追加する方法です

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
于 2017-04-10T11:15:27.023 に答える
8

テーブルに列を追加するための正しい構文は次のとおりです。

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

COLUMNSQL SERVERのキーワードは、以下を変更するためにのみ使用されます。

ALTER TABLE table_name
  ALTER COLUMN column_name column_type;
于 2016-01-27T08:58:09.950 に答える
0

テーブルの先頭に列を追加しようとしている場合は、一時テーブルの名前を変更している可能性があります(これは順序を変更するよりも簡単なためです)。また、Employeesテーブルにデータがある場合は、EmployeeIDを計算できるようにselect*を挿入する必要があります。

于 2009-04-27T17:03:53.023 に答える