我们正在使用 Azure 的试用版。我们正在尝试从我们内部的 SQL Server 2012 执行跨服务器查询。
我们似乎已经将我们本地的 2012 年与 Azure 联系起来了。当我进入Server Object
-> Linked Servers
在管理工作室,我看到我们的Azure
数据库。
但是,如果我尝试打开目录和表,我会收到一条错误消息:
此版本的 SQL Server 不支持引用“Perseus.sys.sp_tables_rowset2”中的数据库和/或服务器名称
** Perseus是我们目录的名称Azure Sql
.
从本地连接运行查询:
SELECT * FROM [azureDBServer].[Perseus].[dbo].[accounts]
结果是:
链接服务器“azureDBServer”的 OLE DB 提供程序“SQLNCLI11”返回消息
“未指定的错误”。消息 40515,第 16 级,状态 2,第 1 行 参考数据库和/或
此版本不支持“Perseus.sys.sp_tables_info_90_rowset”中的服务器名称
SQL 服务器。
同样的内部 SQL 2012 Server 能够通过跨服务器查询并通过链接服务器查看其结构来连接到我们的内部 2008。
从这篇文章我知道Azure 支持链接服务器 http://blogs.msdn.com/b/windowsazure/archive/2012/09/19/announcing-updates-to-windows-azure-sql-database.aspx.
所以我不知道出了什么问题。我们的管理员认为我们可能拥有 Web-Sql 帐户而不是业务 SQL 帐户。这Azure Web 与业务 SQL https://stackoverflow.com/questions/3426360/sql-azure-web-vs-business-edition过时的堆栈链接意味着 SQL 版本不是问题,但早于 Azure 提供链接服务器的时间。
所以,我想了解是否
a)我们没有设置正确的东西来提供 SQL 链接?
b)我们受到审判的限制吗?
c)我们是否受到 Web SQL 版本的限制?
d)还要别的吗?
需要执行下面提到的三个存储过程来添加SQL Azure。使用下面这些存储过程我能够查询 SQL azure。
EXEC sp_addlinkedserver
@server='PROD',
@srvproduct='',
@provider='sqlncli',
@datasrc='azureserver.database.windows.net',
@location='',
@provstr='',
@catalog='database name'
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'PROD',
@useself = 'false',
@rmtuser = 'Azure login',
@rmtpassword = 'password'
EXEC sp_serveroption 'PROD', 'rpc out', true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)