できません IDENTITY
を追加 既存の列に。できません。
新しいを作成する必要があります タイプ INT IDENTITY
の列 次に、不要になった古い列を削除します (必要に応じて、新しい列の名前を古い名前に変更することもできます)
また:しない ビジュアル デザイナーでこれを行います。これにより、新しい構造でテーブルが再作成され、すべてのデータがコピーされます。 (1,000 万行すべて)、古いテーブルを削除します。
ストレートな T-SQL ステートメントを使用する方がはるかに効率的です。これにより、「インプレース」更新が行われ、非破壊的 (データが失われることはありません) になり、失われません。 プロセスで約 1,000 万行をコピーする必要があります...
ALTER TABLE dbo.YourTable
ADD NewID INT IDENTITY(1,1) NOT NULL
タイプ INT IDENTITY
の新しい列を追加する場合 テーブルに追加すると、連続した番号が自動的に入力されます。これを止めることはできず、後で値を更新することもできません。
これらのオプションはどちらも実際にはあまり役に立ちません。最終的には、異なる ID 値になる可能性があります....これを正しく行うには、次のことを行う必要があります:
- 適切な構造と
IDENTITY
を使用して、事前に新しいテーブルを作成します。 すでに導入済み - 次に、
SET IDENTITY_INSERT (yourtable) ON
をオンにします そのテーブルで ID 列に値を挿入できるようにする - 元のソースからこのデータをコピー
- ID の挿入をもう一度オフにします:
SET IDENTITY_INSERT (yourtable) OFF
このアプローチでのみ、新しいテーブルの IDENTITY 列で同じ ID を取得できます。