0

シナリオ:

ビルド サーバーに毎日展開する必要がある一連のテスト データがあります (ビルド サーバー データベースは最初に現在のライブ データベースで上書きされ、1 か月以上前のすべてのデータが削除されます)。

このテスト データには、保持する必要がある外部キー参照が含まれています。

IDENTITY_INSERT を単純にオンにすることはできません。主キーがデータベースに既に存在するデータと競合する可能性があるためです (空のデータベースから開始するわけではないため)。

テスト データはかなり定期的に再生成できる必要があるため、デプロイ スクリプトを実行して id 列を風変わりなもの (または負の数など) に偽装し、関連する外部キー列を次のように変更します。データを再生成するたびに同じ ID を使用することには、わくわくしません。

理想的には、データベースをスキャンし、外部キー制約を取得し、それに応じて挿入スクリプトを生成できるツールがあるかどうかを知りたいです。

INSERT INTO MyTable VALUES('TEST','TEST');

DECLARE @Id INT;
SET @Id = (SELECT @@IDENTITY)

INSERT INTO MyRelatedTable VALUES(@Id,'TEST')
4

1 に答える 1

0

ID の変更に対応する ETL プロセスを検討したいようですね。OUTPUTSQL Server を使用しているので、句を確認できます。これを使用して、「古い」ID を各主キーの「新しい」ID にマップし、移行時に外部キーをマップできるいくつかの一時テーブルを作成します。子」テーブル。

于 2013-04-11T13:04:29.077 に答える