我在SQL2005中运行
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
可以正确配置
但在SQL2000中运行的话提示:
服务器: 消息 15123,级别 16,状态 1,过程 sp_configure,行 78
配置选项 'Ad Hoc Distributed Queries' 不存在,也可能是高级选项。怎么办啊还有如果打开了 Ad Hoc Distributed Queries 会存在什么安全隐患谢谢

解决方案 »

  1.   

    Ad Hoc Distributed Queries 對應的是 Openrowset 和 Opendatasource在2000裏面,不用配置的。
      

  2.   

    那我怎么在我的SQL2005去查询SQL2000的内容呢?
    SELECT   *   
      FROM   OPENDATASOURCE(   
                        'SQLOLEDB',   
                        'server=YKTCPC-105\\JERRYSQL2000;user id=sa;password=123456;database=Ys2008'   
                        ).ys2008.dbo.yy_user   SQL2005开了那个后,在SQL2000中就可以查询他的数据
    现在我要用SQL2005去查询SQL2000的就是没有办法
      

  3.   


    SELECT   *   
      FROM   OPENDATASOURCE(   
                        'SQLOLEDB',   
                        'server=YKTCPC-105\\JERRYSQL2000;user id=sa;password=123456;database=Ys2008'   
                        ).ys2008.dbo.yy_user   提示:
    链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "登录超时已过期"。
    链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。"。
    消息 65535,级别 16,状态 1,第 0 行
    SQL 网络接口: 定位指定的 Server/Instance 时出错 [xFFFFFFFF]. 但在SQL2000查SQL2005就没有问题
      

  4.   

    select *
    from opendatasource('SQLOleDb','Data Source=myfend;Integrated Security=SSPI').Northwind.[dbo].tb测试成功.
      

  5.   


    -- 开启分布查询
    exec sp_configure 'show advanced options', 1
    -- 显示高级配置  
    reconfigure 
    -- 更新值 
    exec sp_configure 'Ad Hoc Distributed Queries', 1 
    -- 启用分布式查询  
    reconfigure  
    go-- 关闭分布式查询  
    exec sp_configure 'Ad Hoc Distributed Queries',0     
    reconfigure  
    exec sp_configure 'show advanced options',0  
    reconfigure  
      

  6.   

    在开启后执行代码的案例,补充下:
    select * from OpenDataSource(
    'sqloledb',
    'Data Source=192.168.1.74;user id=sa;password=sa2005'
    ).EMSAccess.dbo.Sc_role
      

  7.   

    楼主用其他的方式吧!创建连接服务器也可以的。
    EXEC sp_addlinkedserver
          @server='DBVIP',--被访问的服务器别名(任意的名称)
          @srvproduct='',
          @provider='SQLOLEDB',
          @datasrc='MYSQLServer'   --要访问的服务器(SQL SERVER实例名)EXEC sp_addlinkedsrvlogin
         'DBVIP', --被访问的服务器别名
         'false',
         NULL,
         'sa', --登陆链接服务器的帐号
         '1q2w3e4R' --登陆链接服务器的密码--查看已注册的链接服务器
    --exec sp_linkedservers--把本地的表数据插入到链接服务器上的表中
    SELECT * INTO DBVIP.database_name.dbo.table_name FROM local_table_name
    --DBVIP.database_name.dbo.table_name 远程服务器完整表名(必须用4部分表示)
    --local_table_name 本地表名--用完后可删除
    --Exec sp_droplinkedsrvlogin DBVIP,NULL --删除链接服务器的登陆帐户
    --Exec sp_dropserver DBVIP --删除链接服务器
      

  8.   

    跨服务器连接查询(补充)
    http://blog.csdn.net/claro/article/details/5798156如何方便的建立远程链接服务器
    http://blog.csdn.net/claro/article/details/4317900
      

  9.   

    我用的sqlserver2000,出现:“配置选项 'Ad Hoc Distributed Queries' 不存在,也可能是高级选项”
      

  10.   

    执行  SELECT * FROM OPENROWSET( 'MICROSOFT.ACE.OLEDB.12.0','Excel  
    12.0;IMEX=1;HDR=YES;DATABASE=D:/rms/upload/outDir/1152922819965048069.xlsx',[sheet1$])
    报错   服务器: 消息 7399,级别 16,状态 1,行 1
    OLE DB 提供程序 'MICROSOFT.ACE.OLEDB.12.0' 报错。 
    [OLE/DB provider returned message: 找不到可安装的 ISAM。]
    OLE DB 错误跟踪[OLE/DB Provider 'MICROSOFT.ACE.OLEDB.12.0' IDBInitialize::Initialize returned 0x80004005:   ]。
    上网搜了一下也不知道怎么解决