シナリオ:
ビルド サーバーに毎日展開する必要がある一連のテスト データがあります (ビルド サーバー データベースは最初に現在のライブ データベースで上書きされ、1 か月以上前のすべてのデータが削除されます)。
このテスト データには、保持する必要がある外部キー参照が含まれています。
IDENTITY_INSERT を単純にオンにすることはできません。主キーがデータベースに既に存在するデータと競合する可能性があるためです (空のデータベースから開始するわけではないため)。
テスト データはかなり定期的に再生成できる必要があるため、デプロイ スクリプトを実行して id 列を風変わりなもの (または負の数など) に偽装し、関連する外部キー列を次のように変更します。データを再生成するたびに同じ ID を使用することには、わくわくしません。
理想的には、データベースをスキャンし、外部キー制約を取得し、それに応じて挿入スクリプトを生成できるツールがあるかどうかを知りたいです。
INSERT INTO MyTable VALUES('TEST','TEST');
DECLARE @Id INT;
SET @Id = (SELECT @@IDENTITY)
INSERT INTO MyRelatedTable VALUES(@Id,'TEST')