查询链接的sql server

时间:2009-01-30 14:42:59

标签: sql-server linked-server

我添加了一个链接服务器,它显示在链接服务器列表中,但是当我查询它时,它会引发数据库服务器名称的错误。

EXEC sp_helpserver
EXEC sp_addlinkedserver 'aa-db-dev01'
Select * from openquery('aa-db-dev01','Select * from TestDB.dbo.users')
  

Msg 102,Level 15,State 1,Line 1
  'aa-db-dev01'附近的语法不正确。

6 个答案:

答案 0 :(得分:42)

SELECT * FROM [server].[database].[schema].[table]

这对我有用。 SSMS intellisense可能仍会将此作为语法错误强调,但如果您的链接服务器已配置且查询正确,则它应该有效。

答案 1 :(得分:24)

您需要从链接服务器名称周围删除引号。它应该是这样的:

从openquery中选择*(aa-db-dev01,'Select * from TestDB.dbo.users')

答案 2 :(得分:6)

您可以使用:

SELECT * FROM [aa-db-dev01].[TestDB].[dbo].[users];

答案 3 :(得分:3)

我使用open query来执行此任务,如下所示:

react-bs-table

上面的示例使用开放查询从链接服务器上的数据库中选择数据到您选择的数据库中。

注意:为了完整参考,您可以执行如下简单选择:

select top 1 *
INTO [DATABASE_TO_INSERT_INTO].[dbo].[TABLE_TO_SELECT_INTO]
from openquery(
    [LINKED_SERVER_NAME],
    'select * from [DATABASE_ON_LINKED_SERVER].[dbo].[TABLE_TO_SELECT_FROM]'
)

答案 4 :(得分:1)

尝试Select * from openquery("aa-db-dev01",'Select * from users'),应在链接服务器配置中定义数据库连接

答案 5 :(得分:0)

如果链接服务器名称是IP地址,则以下代码为真:

select * from [1.2.3.4,1433\MSSQLSERVER].test.dbo.Table1

请注意,在[IP地址]部分周围请注意[]。