【问题标题】:Connect to SQL Azure DB using OpenRowSet from on-premise SQL Server使用 OpenRowSet 从本地 SQL Server 连接到 SQL Azure DB
【发布时间】:2016-03-25 19:40:39
【问题描述】:

我正在尝试使用 openrowset 从本地 SQL Server 连接到 SQL Azure 数据库,但失败并出现错误。

我的查询是

SELECT a.* 
FROM OPENROWSET('SQLNCLI', 'Server=sqlazureserver.database.windows.net;Database=dbname;User ID=username;Password=password;Connection Timeout=30;', 'select * from [dbo].[tablename]') AS a;

我得到的错误:

消息 7399,第 16 层,状态 1,第 11 行
链接服务器“(null)”的 OLE DB 提供程序“SQLNCLI11”报告错误。身份验证失败。
消息 7303,第 16 层,状态 1,第 11 行
无法为链接服务器“(null)”初始化 OLE DB 提供程序“SQLNCLI11”的数据源对象。

我可以使用链接服务器成功连接,但我不想走那条路,因为我的连接字符串是动态的。

【问题讨论】:

    标签: sql oledb azure-sql-database


    【解决方案1】:

    从文档中,我可以看到 SQL Azure 数据库目前不支持开放行集。

    您可以使用分布式查询代替 openrowset 来完成相同的操作

    exec ('select * from table') at linkedserver
    

    【讨论】:

    • 感谢您的回复,但我需要一个替代解决方案来动态使用连接字符串而不是链接服务器路由。
    • OPENROWSET 现在在 Azure SQL 数据库上受支持。需要注意的是,如果您使用 BULK 选项,则数据文件需要位于 Azure Blob 存储中。
    猜你喜欢
    • 2022-07-22
    • 1970-01-01
    • 2021-07-30
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多