SQL 配置选项 'Ad Hoc Distributed Queries' 不存在

SELECT  *  FROM  OPENDATASOURCE( ' SQLOLEDB ', ' DataSource=192.168.1.201;Initial Catalog=DBName;user id=sa;passWord=sa ').DBName.dbo.TableName

    上面的语句执行会出现以下错误:

    Msg  18456Level  14, State  1, Line  1 用户  ' sa ' 登录失败。 Msg  4060Level  11, State  1, Line  1 无法打开登录所请求的数据库 "bbage_GameInisde"。登录失败。

    因为OPENDATASOURCE后面已经跟了数据库的名字(DBName),所以连接字符串中不能指定Initial Catalog。

    正确的语句如下:

     SELECT    *  FROM       OPENDATASOURCE(           ' SQLOLEDB ',           ' Data Source=192.168.1.201;User ID=sa;Password=sa '          ).DBName.dbo.TableName

    注意:上面灰色的字均为个人需要配置的东西。

    执行该语句,可能会遇到以下问题:

    SQL Server 阻止了对组件  ' Ad Hoc Distributed Queries ' 的 STATEMENT ' OpenRowset/OpenDatasource ' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用  ' Ad Hoc Distributed Queries '。有关启用  ' Ad Hoc Distributed Queries ' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

    只要执行下列语句:

     EXEC sp_configure  ''Ad Hoc  Distributed Queries ''  1

     RECONFIGURE

    如果你没有设置过服务器配置,可能会出现以下错误:

    配置选项  ' Ad Hoc Distributed Queries ' 不存在,也可能是高级选项。

    这时,你就需要打开高级配置:

     EXEC sp_configure  ' show advanced option '  1

     RECONFIGURE

    总的操作就按照上面逆序执行即可:

     EXEC sp_configure  ' show advanced option '  1

     RECONFIGURE

     EXEC sp_configure  ' Ad Hoc Distributed Queries '  1

     RECONFIGURE

    注意:上面的RECONFIGURE是用以动态更新选项的操作,如果不执行,则sp_configure的执行结果不会被保持。

    另外,对于SQLExPRession  2005,则需要执行:

     EXEC sp_configure  ' user instance enabled '  1

     RECONFIGURE

转载于:https://www.cnblogs.com/hanguoji/archive/2012/10/29/2745147.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值