【问题标题】:can stored proc in SQL Server 2008 on-premise db reference a table in SQL Azure db可以在 SQL Server 2008 本地数据库中存储的过程引用 SQL Azure 数据库中的表
【发布时间】:2012-02-04 23:07:52
【问题描述】:

我可以在 SQL Server Management Studio 中查看我的 SQL Azure 数据库,并且能够在 SSMS 中执行查询、创建对象等。 VPN 正在运行。

我知道 Microsoft 提供(或将提供)同步实用程序,但假设我们不想使用它们。存储过程是否可以在本地实例中本地运行,建立与远程(云)数据库的连接,然后像本地一样引用云中的表?

        insert azure.dbo.clients CLOUD
        select * from mylocaldb.dbo.clients EARTH 
        where EARTH.lastSyncDate is null

是否可以像链接服务器一样连接到云数据库,以允许异构(地球/云)查询和数据流?

【问题讨论】:

    标签: sql-server-2008 azure-sql-database database-connectivity


    【解决方案1】:

    是的,您必须在本地服务器中创建一个链接服务器条目,并像使用任何其他链接服务器一样引用 SQL Azure 数据库。在创建链接服务器之前,您只需创建一个 ODBC DSN。 详情请查看Linked Servers to SQL Azure

    之后,您可以使用它的四部分名称执行远程存储过程,例如:

    EXEC [RemoteServer].DatabaseName.DatabaseOwner.StoreProcedureName params
    

    【讨论】:

    • 谢谢。我发现 xxxxx.servername.windows.net 必须粘贴到服务器名称的组合框中,并且还必须附加到系统 DSN 创建对话框中的用户名 username@xxxxxx.servername.windows.net。
    【解决方案2】:

    虽然 Panagiotis 是正确的,但您需要知道关于此“功能”的免责声明:不支持。以下是有关链接服务器和 SQL Azure 的官方 SQL Server 支持团队声明:http://blogs.msdn.com/b/psssql/archive/2011/05/03/not-linkedservertosqlazure-where-provider-msdasql-and-dsn-sql-server-native-client.aspx

    【讨论】:

    • 您所指的帖子是关于 OLEDB,而不是 ODBC。 Lubor Kolar(顺便说一句,SQL Server 优化器的创建者之一)的帖子明确指出您必须创建一个 ODBC DSN。虽然看起来有两个相互矛盾的“官方 SQL Server 团队”声明,但它们实际上指的是两个不同的东西。
    • 嗨帕纳吉奥蒂斯。我可能弄错了,但是您所指的帖子基本上使用了链接服务器。链接服务器使用 OLE DB 访问您公开的任何底层数据源。您正在创建 ODBC DSN 这一事实并不能否定使用 OLEDB 来访问该 DSN。这是显示我所指内容的链接服务器架构:msdn.microsoft.com/en-us/library/aa213778(v=SQL.80).aspx。如果我不正确,请告诉我原因。谢谢!
    猜你喜欢
    • 2017-06-13
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2012-01-15
    • 2016-03-15
    相关资源
    最近更新 更多