是否有可能不仅有LinkedServer,而是链接数据库和服务器?我的情况是有一个环境设置:
ServerX:DatabaseOne,DatabaseTwo
和另一个环境:
ServerY:MyDatabaseOne,MyDatabaseTwo
现在,DatabaseOne和MyDatabaseOne与DatabaseTwo和MyDatabaseTwo完全相同.我有一个存储过程,在给定的服务器上从一个数据库到另一个数据库执行一些基本的表更新,我希望它能够在两种环境中工作.我已经设置了一个链接服务器,所以我的参考可以是:
MyLinkedServer.DatabaseOne.dbo.MyTable或MyLinkedServer.MyDatabaseOne.dbo.MyTable
即便如此,我还需要在切换环境时更改数据库名称时更改SP,是否有任何设置数据库别名的方法,以便我可以编写:
SELECT*FROM MyLinkedServer.MyLinkedDatabase.dbo.MyTable
因此,只要在每个环境中设置了LinkedServer和(如果可能的话)LinkedDatabase,SP在切换环境时都可以正常工作而不会改变?
Bra*_*ath 20
您可以通过按照这些步骤对服务器进行别名来避免动态sql(对此帖子的信用)
1)第1步:
2)第2步:
3)第3步:
4)第4步:
您可以更进一步,在查询表时跳过指定数据库名称,您可以为每个对象创建同义词,如下所示:
CREATE SYNONYM [dbo].[DimProduct]
FOR
[AdventureWorksDW].[dbo].[DimProduct]
Run Code Online (Sandbox Code Playgroud)
这将在您的数据库中创建DimProduct同义词.据我所知,您无法创建数据库的同义词.