在没有链接服务器的MSSQL中查询数据库

时间:2017-06-26 08:05:08

标签: sql-server ms-access

我有一个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”。

1 个答案:

答案 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;