我有一个Access数据库,它使用传递描述中的连接字符串查询SQL服务器,如下所示:
ODBC;DRIVER=SQL Server;SERVER=xxxx;APP=Microsoft Data Access Components;DATABASE=xxxx;Network=xxxx;TABLE=xxxx
如何在MSSQL中创建查询以在没有链接服务器的情况下查询同一数据库?
在robertdeniro的回应之后,我尝试了以下内容:
SELECT top 10 *
FROM OPENROWSET('SQLNCLI',
'DRIVER={SQL Server};SERVER=ServerName;UID=UserID;PWD=xxx',
'select @@ServerName')
SELECT top 10 *
FROM OPENDATASOURCE('SQLNCLI',
'Data Source=serverName;Integrated Security=SSPI')
.TableToQuery
但是我收到以下错误消息:
消息15281,级别16,状态1,行1 SQL Server阻止访问 组件'Ad Hoc Distributed的声明'OpenRowset / OpenDatasource' 查询'因为此组件作为安全性的一部分被关闭 此服务器的配置。系统管理员可以启用 使用sp_configure使用“Ad Hoc Distributed Queries”。更多 有关启用“Ad Hoc Distributed Queries”的信息,请搜索 SQL Server联机丛书中的“Ad Hoc Distributed Queries”。
答案 0 :(得分:1)
您可以使用SQL SERVER函数OPENROWSET或OPENDATASOURCE。这些函数允许您指定数据库驱动程序和ad-hoc连接的连接设置。
您的问题没有提供有关您打算如何使用此信息的任何信息,因此我无法举例说明。
您将能够在Microsoft网站上找到该文档。这是当前链接Rowset Functions
如果您需要启用即席查询:
exec sp_configure 'show advanced options', 1;
reconfigure;
exec sp_configure 'Ad Hoc Distributed Queries', 1
reconfigure;