如何在名称中引用反斜杠(\)的sql server?

Bil*_*zke 14 t-sql sql-server sql-server-2005 linked-server

吉文斯:

  • 一个SQL Server命名为: DevServerA
  • 另一个名字叫: DevServerB\2K5

问题:

DevServerA,如何编写引用的查询DevServerB\2K5

我尝试了一个示例,虚拟查询(从中运行DevServerA):

SELECT TOP 1 *  
FROM DevServerB\2K5.master.sys.tables
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '\.'.
Run Code Online (Sandbox Code Playgroud)

但是,我知道我的语法几乎是正确的,因为反过来工作(运行此查询DevServerB\2K5):

SELECT TOP 1 *  
FROM DevServerA.master.sys.tables
Run Code Online (Sandbox Code Playgroud)

请帮我找出如何引用DevServerB\2K5DevServerA.谢谢.

Rem*_*anu 18

在4个部分名称中,第一部分是链接服务器的名称(即元数据对象),而不是服务器的名称(即主机名).因此,您可以命名您的链接服务器FOO并让他指向主机BAR或实例FOO\BAR.即使您将链接服务器对象命名为包含斜杠,您仍然可以通过简单引用名称在多部分名称中使用它:

SELECT TOP 1 *  
FROM [DevServerB\2K5].master.sys.tables
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 6

尝试使用方括号:

SELECT TOP 1 *  
FROM [DevServerB\2K5].master.sys.tables
Run Code Online (Sandbox Code Playgroud)