2012-08-10 16 views
8

テーブルが作成されていて、そのテーブルを変更したい。私は主キーとidentity(1,1)を追加したいと思います。プライマリキーとIDのテーブル列を変更する

プライマリキーを適用できますが、同一性を適用するとエラーが発生します。何か不足していますか?

ALTER TABLE MyTable ADD PRIMARY KEY (Id) 

プライマリキーでIDを追加するにはどうすればよいですか?

答えて

18

データベース内のの既存の列の定義を変更して、IDENTITYプロパティを追加(または削除)することはできません。

ALTER TABLE MyTable ADD NewID int IDENTITY(1,1) not null 

は、残念ながら、あなたは、この新しい列に古いID値を割り当てることはできません:あなたはIDENTITYプロパティを持つ新しい列を作成する必要があります。 ID値を割り当ててIDENTITYに引き継ぎたい場合は、必要な構造で新しいテーブルを作成してから古いテーブルからデータをインポートする方が良いでしょう(IDENTITY_INSERTを使用してIDENTITYに値を割り当てることができます)。カラム)。

必要に応じて古いテーブルを削除し、新しいテーブルの名前を変更します。

+0

はい、ありがとうございます。私は自分の存在の列にアイデンティティを追加しようとしていました。 –

+1

[メタデータのみ変更することができます](http://stackoverflow.com/q/6084572/73226) –

+2

**主キー**も必要な場合は、ALTER TABLE LookupStates ADD Id int IDENTITY(1、 1)PRIMARY KEY not null' –

関連する問題