如何从名称中有反斜杠的不同服务器 select table

how to select table from a different server having backslash in the name

我正在尝试查询存在于不同服务器/数据库等中的 table

select 前 1 * 来自 'serverdd\foobar'.mydatabase.mytable

我的问题是服务器名称中有反斜杠..

那么我该如何编写对这种服务器名称的查询。我确实用单引号将它括起来,但它不起作用。我收到 "an incorrect" 语法错误。

首先您需要添加 "linked server"。这是一个link:https://msdn.microsoft.com/en-gb/library/ms190479.aspx

可能看起来像这样(虽然我通常使用 GUI):

EXEC sp_addlinkedserver   
   @server=N'serverdd_foobar', 
   @srvproduct=N'',
   @provider=N'SQLNCLI', 
   @datasrc=N'serverdd\foobar';

当你 link 一个服务器时,你给它一个友好的名字。在上面的示例中,我命名它时没有使用反斜杠。您可以使用此名称访问服务器:

SELECT * FROM serverdd_foobar.database.schema.table

如果这些元素中的任何一个包含无效字符(如反斜杠),您需要将该元素括在方括号中。双引号通常也可以,但可以关闭;单引号永远不会起作用。