我需要将链接服务器添加到MS Azure SQL Server

use*_*483 20 linked-server server azure-sql-database

我已经尝试过,并且无法联系到.我可以使用SSMS连接到服务器,但无法从本地服务器链接到它.这是我的脚本(用括号替换相关信息):

EXEC master.dbo.sp_addlinkedserver
    @server     = N'[servername].database.windows.net',
    @srvproduct = N'Any',
    @provider   = N'MSDASQL',
    @datasrc    = N'Azure_ODBC1'
GO

EXEC master.dbo.sp_addlinkedsrvlogin
    @rmtsrvname  = N'[servername]',
    @useself     = N'False',
    @locallogin  = NULL,
    @rmtuser     = N'[username]',
    @rmtpassword = '[password]'

GO
Run Code Online (Sandbox Code Playgroud)

错误信息

Phi*_*ppe 28

正如ckarst第二个链接中所指出的,有一个有效的解决方案.我在这里发布它是为了省去搜索它的麻烦.正如JuanPableJofre在此页面中建议的Azure反馈:

使用SQL 2014,我能够在本地SQL服务器和SQL Azure之间进行分布式查询.首先,我创建了一个Linked-Server:

  • 链接服务器(名称):LinkedServerName
  • 提供程序:用于SQL Server的Microsoft OLE DB提供程序
  • 产品名称:(空白)
  • 数据源:azure-db .database.windows.net
  • 提供者字符串:(空白)
  • 地点:(空白)
  • 目录:db-name

在安全选项中:(*)

  • 使用此安全上下文
  • 远程登录:azure-user-name
  • 使用密码:yourPassword

在SSMS中输入以下测试查询:

use [Local_DB] 
go

Select *
from [LinkedServerName].[RemoteDB].[dbo].[Remote_Table] 
Run Code Online (Sandbox Code Playgroud)

它工作得很漂亮!!

总而言之,链接服务器是在本地数据库上创建的.目录(数据库名称)很重要,因为Azure可能不允许您在查询中指定它(即:使用azureDBName在Azure上不起作用),因此数据库名称必须在目录中.


cka*_*rst 6

遗憾的是,SQL Azure DB不支持链接服务器. https://msdn.microsoft.com/en-us/library/azure/ee336281.aspx

但是,正如您从下面的论坛链接中看到的那样,Microsoft了解该方案并且已听到客户反馈.http://feedback.azure.com/forums/217321-sql-database/suggestions/402636-cross-database-reference