1. ホーム
  2. sql-server

[解決済み】SQL Server、既存のテーブルに自動インクリメントの主キーを追加する。

2022-04-01 10:18:34

質問

タイトルにあるように、すでに150000レコードが登録されている既存のテーブルがあります。私はIdカラムを追加しました(現在はNULLです)。

私は、このカラムを増分値で埋めるクエリを実行し、主キーとして設定し、自動インクリメントをオンにすることができると仮定しています。これは正しい方法なのでしょうか?そして、もしそうなら、どのように最初の数字を埋めるのでしょうか?

どのように解決するのですか?

いいえ、その逆で、最初から次のように追加する必要があります。 INT IDENTITY - を実行すると、ID 値で埋め尽くされます。

ALTER TABLE dbo.YourTable
   ADD ID INT IDENTITY

で、それを主キーにすればいいのです。

ALTER TABLE dbo.YourTable
   ADD CONSTRAINT PK_YourTable
   PRIMARY KEY(ID)

または、1つのステップですべてを行うことを好む場合。

ALTER TABLE dbo.YourTable
   ADD ID INT IDENTITY
       CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED