プログラムで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'の近くの構文が正しくありません」という最初のステートメントで窒息していると思います。
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]
これは、テーブルに新しい列を追加する方法です
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テーブルにデータがある場合は、select *を挿入して、EmployeeIDを計算できるようにする必要があります。