Microsoft SQL Server 2008 和链接服务器

Ash*_*sha 5 sql-server-2008 linked-server

我正在设计一组可能需要使用彼此的存储过程或表的数据库。我创建单独的数据库的原因是,将来我希望能够在需要时将这些数据库中的任何一个移动到自己的专用服务器上,并且只需创建一个链接服务器到其他服务器。但是这样做我还需要更改访问其他数据库的所有代码。

有没有人知道在使用链接服务器的情况下有什么方法可以避免以后的修改?

或者换句话说:

无论是否需要访问链接服务器或同一本地服务器,都可以使用存储过程吗?

例子 :

DatabaseA 和 DatabaseB 都位于 DatabaseB 上的 SQLInstantA Sp 上:

SELECT * FROM DataBaseA.dbo.tbx
Run Code Online (Sandbox Code Playgroud)

现在,如果我将 DatabaseB 移动到 SQLInstanceB,并为 SQLInstanceA 创建一个链接服务器,我必须将 SP 代码更改为以下内容:

SELECT * from linkedserverName.DatabaseA.dbo.tbx
Run Code Online (Sandbox Code Playgroud)

无论如何要避免在移动数据库的情况下进行这种更改?

小智 -1

我认为最简单的解决方案是在您的主机文件中根据需要添加尽可能多的行,所有这些行都指向当前开发服务器的相同IP地址,并通过创建链接服务器来启动整个内容。

因此,我们假设您需要两个额外的(未来链接的)服务器。那么你的主机文件(c:\windows\system32\drivers\etc)将如下所示:

123.123.123.101 mylinkedserver1.mydomain.com
123.123.123.102 mylinkedserver2.mydomain.com
Run Code Online (Sandbox Code Playgroud)

这样做,您可以从一开始就创建和使用链接服务器。