将生产数据库复制到多个测试数据库,同时保持完全限定名称的完整性的最佳方法是什么?
目前为了刷新测试环境,我们从生产数据库恢复测试数据库。然后,我们编写所有存储过程/视图/等的脚本。并对所有数据库引用进行查找/替换以指向测试对象。在我们把所有的引用都正确之后,我们改变它们。
例如,从生产环境中复制数据库后,我们将有一个如下所示的存储过程:
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个不同的其他测试数据库,因此“查找/替换”过程非常耗时并且容易出错。
恢复这些测试环境的最佳方法是什么?
我们使用的是 SQL Server 2008R2。