如何从名称中有反斜杠的不同服务器 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
如果这些元素中的任何一个包含无效字符(如反斜杠),您需要将该元素括在方括号中。双引号通常也可以,但可以关闭;单引号永远不会起作用。
我正在尝试查询存在于不同服务器/数据库等中的 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
如果这些元素中的任何一个包含无效字符(如反斜杠),您需要将该元素括在方括号中。双引号通常也可以,但可以关闭;单引号永远不会起作用。