レコードのバンドルを含む SQL Server のテーブルがあります。データを失うことなく、主キーである ID 列を ID 列に変換したいと考えています。以下の2つの方法を考えました。
- ID を使用して新しいテーブルを作成し、既存のテーブルを削除します。
- ID を使用して新しい列を作成し、既存の列を削除します。
しかし、記録を残すことが私の最優先事項であるため、実行できないことは明らかです。
これを行う別の方法はありますか?
レコードのバンドルを含む SQL Server のテーブルがあります。データを失うことなく、主キーである ID 列を ID 列に変換したいと考えています。以下の2つの方法を考えました。
しかし、記録を残すことが私の最優先事項であるため、実行できないことは明らかです。
これを行う別の方法はありますか?
この解決策はあなたのポイント2に違反していますが、他に方法はなく、あなたの目的は古い値を維持することだと思います.
次のことができます。
テーブルの ID 列に挿入できるようにします。
set identity_insert YourTable ON
ID 挿入をオフにする
set identity_insert YourTable OFF
唯一の問題は、ID 列が既に外部キーとして他のテーブルに接続されていることです。次に、古い列を削除する際に問題が発生します... この場合、手順 3 の後に ID 列の外部キー制約を削除し、手順 4 から 6 を実行してから、外部キー制約を再作成する必要があります。