zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    秒杀系统性能测试和优化
    性能测试分析过程(三)linux下查看最消耗CPU/内存的进程
    [改善Java代码]注意方法中传递的参数要求(replaceAll和replace的区别)
    [改善Java代码]由点及面,一叶知秋----集合大家族
    [改善Java代码]非稳定排序推荐使用List
    [改善Java代码]多线程使用Vector或HashTable
    [改善Java代码]减少HashMap中元素的数量
    [改善Java代码]使用shuffle打乱列表
    [改善Java代码]集合运算时使用更优雅的方式
    [改善Java代码]集合中的元素必须做到compareTo和equals同步
  • 原文地址:https://www.cnblogs.com/hanguoji/p/2745147.html
Copyright © 2011-2022 走看看