无法使用链接服务器连接到SQL Azure

时间:2011-08-25 14:02:58

标签: sql azure odbc oledb linked-server

我一直关注这篇文章:

http://blogs.msdn.com/b/sqlcat/archive/2011/03/08/linked-servers-to-sql-azure.aspx

关于如何将链接服务器从SQL Server 2008 R2设置为SQL Azure实例。我使用SQL Native Client 10.0作为ODBC驱动程序,并通过显示连接有效的默认数据库进行判断;但是,当我尝试建立链接服务器时,如上文所述;我收到以下错误:

链接服务器“Azure_Test”的OLE DB提供程序“MSDASQL”返回消息“[Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序”。

现在我看到一些论坛帖子(不幸的是没有结论)暗示它可能是64位问题。有没有人从本地实例成功地将链接服务器设置为SQL Azure?

编辑:戴维斯的答案确实是正确的;我以为我会分享这个我发现你现在可以用链接服务器做的很棒的事情:

DELETE OPENQUERY (AzureTest, 
'SELECT * FROM [AzureDB].static.MyTable');

INSERT OPENQUERY (AzureTest, 
'SELECT * FROM [AzureDB].static.MyTable')
SELECT *
FROM static.MyTable

SELECT * FROM OPENQUERY(AzureTest, 'SELECT * FROM [AzureDB].static.MyTable')

1 个答案:

答案 0 :(得分:4)

我已按照您链接到的文档中列出的步骤执行此操作。

以下是我需要使用它的两个SQL语句:

EXEC master.dbo.sp_addlinkedserver @server = N'Azure_ODBC1',@srvproduct=N'Any', @provider=N'MSDASQL', @datasrc=N'MY Azure'
GO

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Azure_ODBC1',
@useself=N'False',@locallogin=NULL,@rmtuser=N'piqBackup@azureServer',@rmtpassword='########'
GO

我将我的ODBC连接设置为SYSTEM DSN(我最初将其设置为用户DSN并且存在一些问题)。我只使用了我的服务器名称(前面没有'tcp:') - azureServer.database.windows.net。一旦我设置了DSN并运行了上面的三个语句,它就运行良好。我可以毫无问题地执行此声明:

SELECT * FROM Azure_ODBC1.piqBackupData.dbo.BackupData

我不确定这是否有帮助 - 但我希望确实如此。祝你好运!