我的数据库脚本有问题。我们有三个环境:DEV,QA和UAT。我们有两个数据库:DB1
和DB2
。在DEV / QA上,这两个数据库位于不同的物理服务器上,因此我们在DB2
中有一个到DB1
的链接服务器。但是在UAT上,它是具有两个数据库的单个服务器。
我们的问题是我们编写的脚本涉及使用DB2
链接服务器引用DB2
,该服务器在UAT中失败。我们采用的流程是使用手动方式部署到UAT,这是无效的。
有人可以建议可以采取哪些措施来改善这种情况吗?
答案 0 :(得分:3)
您可以在UAT环境的数据库引用中创建链接服务器,其名称与DEV / QA环境中的链接服务器相同。
假设UAT数据库的服务器名称为MYUATSRVNAME
(使用SELECT @@SERVERNAME
的输出)。您可以创建一个自引用链接服务器,其名称与DEV / QA DB1
中使用的链接服务器名称相同。假设名称为UVWXYZ
,在您的UAT数据库上执行
EXEC sp_addlinkedserver @server='UVWXYZ',@srvproduct='',@provider='SQLNCLI',@datasrc='MYUATSRVNAME';
这样您就可以使用引用相同链接服务器名称的相同脚本。例如,此查询应该在DEV / QA和UAT上的DB1
中工作:
SELECT * FROM [UVWXYZ].[DB2].[your_schema].[your_table];