web-dev-qa-db-ja.com

テーブル変更列の構文

プログラムで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]

私は何を間違えていますか?スクリプトをエクスポートしようとしましたが、SQL Mgmt Studioが一時テーブル全体の名前変更を行います。

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

133
BuddyJoe

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]
188
Vikram

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

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
8
Chirag Thakar

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

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;
5
Dzianis Yafimau

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

0
neouser99