我继承在MS SQL2008 R2大遗留系统引用远程MS SQL数据库。从存储过程
有大量引用另一个数据库的存储过程:
select * from MySeparateDatabase_LIVE.dbo.MyTable
select * from MySeparateDatabase_STAGING.dbo.MyTable
select * from MySeparateDatabase_TEST.dbo.MyTable
不幸的是所有的活,分期和测试数据库在同一SQL实例和公司的限制意味着这不会很快改变。
问题来试图从测试更改推送到分期和生活。它需要大量的手动编辑或查找/替换 - 这会在关键系统上引入潜在的错误。
我可以采用什么技术来使用完全相同的SP在每个数据库上?
你能提供一个更好的片的示例代码。没有理由你的示例代码不会在每个数据库上执行。 – gvee
@ gvee第一个查询位于名为dbLive的数据库中,第二个查询位于名为dbStage的数据库中。每个数据库都应该引用其“伴随”数据库,但是为了这样做,当代码从测试数据库移动到临时数据库时,代码当前必须更改。 –
如果您正在使用存储过程,则可以将MySeparateDatabase_XXX部分作为参数传递。这会将你的问题转移到你的SP被调用的部分,所以这可能是也可能不是解决方案。 – Sam