我们在我的工作场所设置了几个SQL服务器,它们都相互链接,我们在很多代码中都使用了4部分的DB名称。我们正在考虑将一些数据库从一个服务器移动到另一个服务器,并且正在评估对我们的代码的影响,但是这里似乎没有人知道链接服务器名称在4pt DB的[server]
部分中使用了什么协议名称[server].[database].[dbo].[table]
。 [server]
部分是WINS条目,它只是DNS,还是SQL Server做了一些聪明的事情来实现它?
如果是DNS,那么移动数据库(最少的代码更改)就足够了,但是其他任何事情我们可能不得不重新考虑我们的策略。
答案 0 :(得分:2)
server
只是一个符号名称,datasrc
才是真正重要的名称。
假设您有一个像这样创建的链接服务器:
EXEC master.dbo.sp_addlinkedserver @server = N'TEST', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'server2008r2'
并且查询从TEST.database.schema.table
中选择。使用不同的@datasrc
重新创建链接服务器,它仍然可以工作,但这次它将从不同的物理服务器读取数据(只要数据存在并且安全性设置正确)。