有人可以向我指出相关的BOL信息(对我来说很奇怪)吗?
我必须加入产品和产品暂存同一个表的副本(相同的数据库名称,差异服务器),以便快速查询。所以我只需要一个完全合格的连接。
这一个错误:
SELECT top 10 *
FROM [172.26.196.105\Staging].[DbName].[dbo].[TableName]
这个有效:
SELECT top 10 *
FROM [USCASQL01\STAGING].[DbName].[dbo].[TableName]
编辑:澄清......显然不是连接,这些选择只是我组装我的登台db / table的完全限定名称。这不是链接服务器,而是我连接的服务器。
这些当然是指同一个实例。我使用了IP地址\ InstanceName,因为这是我的对象资源管理器中显示的内容,它返回了一个错误 - “无法在sys.servers中找到服务器'IP地址\ InstanceName'。”确实如此,sys.servers存储了可运行的computerName \ InstanceName。
为什么一个工作而另一个工作? IOW,为什么它不能在TSQL中解析它在对象资源管理器中解析它时的IP /实例名称?顺便说一句,我们经常在sys.servers中存储IP,这个恰好不是。
另外,我记得从SQL Server7(当天回来),一个允许你为ip创建友好名称别名的实用程序。现在找不到,它还存在吗?
TIA
答案 0 :(得分:2)
这是因为四部分限定名称的第一部分是按名称而不是IP或网络名称对链接服务器的引用。因此,如果您没有设置链接服务器,那么您将收到遇到的错误。
要添加链接服务器,您需要查看sp_addlinkedserver
。
This is the BOL Page描述了四个部分名称的工作原理。