完全修飾名の整合性を維持しながら、本番データベースを複数のテストデータベースにコピーするための最良の方法は何ですか?
現在、テスト環境を更新するために、本番データベースからテストデータベースを復元しています。次に、すべてのストアドプロシージャ/ビューなどをスクリプト化します。そして、すべてのデータベース参照に対して検索/置換を実行して、テストオブジェクトをポイントします。すべての参照が正しい場合は、それらを変更します。
たとえば、データベースが本番環境からコピーされた後、次のようなストアドプロシージャが作成されます。
alter procedure dbo.SomeProcedure
as
select SomeColumn
from DB.dbo.SomeTable
join Validation.dbo.AnotherTable on SomId = AnoId
テストデータベースの場合、次のようにする必要があります。
alter procedure dbo.SomeProcedure
as
select SomeColumn
from DBQA1.dbo.SomeTable
join ValidationQA1.dbo.AnotherTable on SomId = AnoId
各テストデータベースにはビュー/ストアドプロシージャ/関数があり、最大30の異なる他のテストデータベースを参照できるため、「検索/置換」プロセスは非常に時間がかかり、多くのエラーが発生しやすくなります。
これらのテスト環境を復元するための最良の方法は何ですか?
SQLServer2008R2を使用しています。