0

重複の可能性:
SQL Server 2008 の列に auto_increment を追加する方法

GUIでテーブルを作成しましたが、主キーを自動インクリメントに設定するのを忘れていました! テーブルの名前は ですEmp_CV

このようなもの:

alter table Emp_CV alter column Applicant_ID NOT NULL int AUTO_INCREMENT

どうすればこれを達成できますか? SQL Server 2008 を使用しています。

4

1 に答える 1

1

短い答えは...できません。あなたがしなければならないことは次のとおりです。

  1. 誰もテーブルを使用していないことを確認してください。

  2. 新しい ID 列となる新しい整数列を追加します。null を許可し、適切な ID 値を持つ必要があります。

  3. execute set identity_insert dbo.foo on-- テーブル名を指定する必要があります。

  4. 既存の ID 列の値でシードします。

    update dbo.foo set new_id = id

  5. 既存の ID 列が関与するすべてのキー/制約を削除します。

  6. 実行するset identity_insert dbo.foo off

  7. 既存の列を削除します。

  8. 新しい列を変更して、nullity を に変更しnot nullます。

  9. コマンドを実行しdbcc checkident( {your-table-name-here} , reseed )ます。

  10. 実行sp_renameして、新しい列に古い列と同じ名前を付けます。

  11. 手順 4 で削除したキー/制約を再作成します。

  12. sp_recompileこのテーブルを参照するすべてのストアド プロシージャで実行したい場合があります。

簡単!

于 2012-08-02T23:16:07.880 に答える