远程连接操作_整理贴2
http://bbs.csdn.net/topics/230087469用数据源:SQLOLEDB

解决方案 »

  1.   

    查询测试语句如下:
    SELECT * FROM OPENROWSET('SQLOLEDB.1','192.168.80.104';'sa';'', 'SELECT * FROM pubs.dbo.authors')
      

  2.   

    但在2008这台服务器上,有一个SQL2000的查询分析器能直接联那台2000的数据库。说明网络和服务器都是通的。
      

  3.   

    这里有个例子,你可以先试一下大版的写法sp_configure 'show advanced options', 1;
      RECONFIGURE;
      sp_configure 'Ad Hoc Distributed Queries', 1;
      RECONFIGURE;
      GO
      
      SELECT a.*
      FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
           'SELECT GroupName, Name, DepartmentID
            FROM AdventureWorks2012.HumanResources.Department
            ORDER BY GroupName, Name') AS a;
      GO
      
      

  4.   

    sp_configure 'show advanced options', 1;
      RECONFIGURE;
    go
    sp_configure 'Ad Hoc Distributed Queries', 1;
      RECONFIGURE;
      GO
       
      SELECT a.*
      FROM OPENROWSET('SQLNCLI', 'Server=192.168.80.104;Trusted_Connection=yes;',
           'SELECT * FROM pubs.dbo.authors') AS a;
      GO错误如下:配置选项 'show advanced options' 已从 1 更改为 1。请运行 RECONFIGURE 语句进行安装。
    消息 5808,级别 16,状态 1,第 2 行
    不支持对系统目录进行即席更新。
    配置选项 'Ad Hoc Distributed Queries' 已从 1 更改为 1。请运行 RECONFIGURE 语句进行安装。
    消息 5808,级别 16,状态 1,第 2 行
    不支持对系统目录进行即席更新。
    链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "登录超时已过期"。
    链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "与 SQL Server 建立连接时发生了与网络相关的或特定于实例的错误。找不到或无法访问服务器。请检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。"。
    消息 1326,级别 16,状态 1,第 0 行
    命名管道提供程序: 无法打开与 SQL Server 的连接 [1326]. 
      

  5.   

    EXEC master.dbo.sp_addlinkedserver @server = N'caiwu', @srvproduct=N'caiwu', @provider=N'SQLOLEDB', @datasrc=N'192.168.80.104'
    GO
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'caiwu', @locallogin = NULL , @useself = N'False', @rmtuser = N'sa', @rmtpassword = N''
    GO执行上面的语句时,提示成功,使用链服务器执行下面的语句时,报错:
    Select * From caiwu.pubs.dbo.authors
    链接服务器"caiwu"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "登录超时已过期"。
    链接服务器"caiwu"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "与 SQL Server 建立连接时发生了与网络相关的或特定于实例的错误。找不到或无法访问服务器。请检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。"。
    消息 1326,级别 16,状态 1,第 0 行
    命名管道提供程序: 无法打开与 SQL Server 的连接 [1326]. 
      

  6.   


    在SQL2008上执行的结果。SQL2000直接可以使用OPENROWSET,没有这个问题。
      

  7.   

    在SQL 2008那台机上,在hosts文件中把2000的那台机的IP地址及对应的机器名添加进去试试
      

  8.   

    c. 连接问题侦测:查看或配置远程服务器连接选项http://msdn.microsoft.com/zh-cn/library/ms179383(v=SQL.110).aspx
    i. Ipconfig.exe识别IP地址,客户端和服务器的IP、子网掩码、默认网关或DNS分配需要正确。
    ii. Nslookup.exe查询目标SQL Server名字的DNS解释。再次之前使用ipconfig /flushdns 命令刷新DNS缓存。
    iii. Ping.exe检验客户端和服务器的网络联接是否正确。
    iv. 尝试使用telnet命令与1433端口建立连接
    v. 使用SQLCMD.EXE联接服务器:Sqlcmd.exe –S SQL-B
    我建议你先检查两者之间是否能互通再考虑连接
      

  9.   

    创建链服务器后,使用下面的语句:
    select *  from openquery(caiwu, 'pubs.dbo.authors')同样报错:
    链接服务器"caiwu"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "登录超时已过期"。
    链接服务器"caiwu"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "与 SQL Server 建立连接时发生了与网络相关的或特定于实例的错误。找不到或无法访问服务器。请检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。"。
    消息 1326,级别 16,状态 1,第 0 行
    命名管道提供程序: 无法打开与 SQL Server 的连接 [1326]. 
      

  10.   

    在SQL2008Ping一下SQL2000 IP地址通不通?
      

  11.   

    我在2012执行sp_configure,没有不支持对系统目录进行即席更新。这个错误
      

  12.   


    IP是能的。我用SQL2008 Server Manager studio 直接连SQL 2000的服务器,都没有问题,就是写代码查询就不行。
      

  13.   


    我在SQL2008上执行这个命令,没有问题。出来的结果如下:
    name minimum maximum config_value run_value
    access check cache bucket count 0 65536 0 0
    access check cache quota 0 2147483647 0 0
    Ad Hoc Distributed Queries 0 1 1 1
    affinity I/O mask -2147483648 2147483647 0 0
    affinity mask -2147483648 2147483647 0 0
    affinity64 I/O mask -2147483648 2147483647 0 0
    affinity64 mask -2147483648 2147483647 0 0
    Agent XPs 0 1 1 1
    allow updates 0 1 1 1
    awe enabled 0 1 0 0
    backup compression default 0 1 0 0
    blocked process threshold (s) 0 86400 0 0
    c2 audit mode 0 1 0 0
    clr enabled 0 1 0 0
    common criteria compliance enabled 0 1 0 0
    cost threshold for parallelism 0 32767 5 5
    cross db ownership chaining 0 1 0 0
    cursor threshold -1 2147483647 -1 -1
    Database Mail XPs 0 1 0 0
    default full-text language 0 2147483647 2052 2052
    default language 0 9999 30 30
    default trace enabled 0 1 1 1
    disallow results from triggers 0 1 0 0
    EKM provider enabled 0 1 0 0
    filestream access level 0 2 0 0
    fill factor (%) 0 100 0 0
    ft crawl bandwidth (max) 0 32767 100 100
    ft crawl bandwidth (min) 0 32767 0 0
    ft notify bandwidth (max) 0 32767 100 100
    ft notify bandwidth (min) 0 32767 0 0
    index create memory (KB) 704 2147483647 0 0
    in-doubt xact resolution 0 2 0 0
    lightweight pooling 0 1 0 0
    locks 5000 2147483647 0 0
    max degree of parallelism 0 64 0 0
    max full-text crawl range 0 256 4 4
    max server memory (MB) 16 2147483647 2147483647 2147483647
    max text repl size (B) -1 2147483647 65536 65536
    max worker threads 128 32767 0 0
    media retention 0 365 0 0
    min memory per query (KB) 512 2147483647 1024 1024
    min server memory (MB) 0 2147483647 0 0
    nested triggers 0 1 1 1
    network packet size (B) 512 32767 4096 4096
    Ole Automation Procedures 0 1 0 0
    open objects 0 2147483647 0 0
    optimize for ad hoc workloads 0 1 0 0
    PH timeout (s) 1 3600 60 60
    precompute rank 0 1 0 0
    priority boost 0 1 0 0
    query governor cost limit 0 2147483647 0 0
    query wait (s) -1 2147483647 -1 -1
    recovery interval (min) 0 32767 0 0
    remote access 0 1 1 1
    remote admin connections 0 1 0 0
    remote login timeout (s) 0 2147483647 20 20
    remote proc trans 0 1 1 1
    remote query timeout (s) 0 2147483647 600 600
    Replication XPs 0 1 0 0
    scan for startup procs 0 1 0 0
    server trigger recursion 0 1 1 1
    set working set size 0 1 0 0
    show advanced options 0 1 1 1
    SMO and DMO XPs 0 1 1 1
    SQL Mail XPs 0 1 0 0
    transform noise words 0 1 0 0
    two digit year cutoff 1753 9999 2049 2049
    user connections 0 32767 0 0
    user options 0 32767 0 0
    xp_cmdshell 0 1 0 0
      

  14.   

    SQL2000实例--属性( SQL Server 是否配置为允许远程连接)?
      

  15.   

    如果都开了2008→2000的连接服务器,你可以直接:select * from [2000的ip].[库名]..[表名]吧
      

  16.   


    允许,我在其他的SQL2000服务器对这台SQL2000的服务器使用OPENROWSET都可以访问 
      

  17.   

    还有一个不明白的问题是,创建链服务器时,选择SQLServer,怎么不需要输入 IP地址和数据库名称呢?非得要存储过程来添加吗?为什么创建orcale的链服务器就直接可以录入这些信息。
      

  18.   

    可以用ip地址,但是我印象中只能用T-SQL来实现
      

  19.   

    我在我的虚拟机中做了一个SQL2000的服务器,在win8的安装了一个SQL2008,在SQL2008中使用openrowset联虚拟机中的SQL2000时,一开始报'Ad Hoc Distributed Queries' 这个错误,使用命令后,这个错不报了,结果又报下面的错误:消息 18452,级别 14,状态 1,第 0 行
    用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。这是什么原因?
      

  20.   

     同样的语句,在虚拟机中访问WIN8的SQL,却没有任何问题。也不报这个错误。崩溃了
      

  21.   


    连接服务器是否允许混合登陆,sa账号是否启动?所连数据库是否设置远程连接允许,外围配置是否开启tcp/ip协议
      

  22.   

    还有目标服务器上有几个 SQL 实例?
    多个的话 IP 后要制定实例名。
      

  23.   


    情况如下:我在我的虚拟机中做了一个SQL2000的服务器,在win8的安装了一个SQL2008,在SQL2008中使用openrowset联虚拟机中的SQL2000时,报下面的错误:
     消息 18452,级别 14,状态 1,第 0 行
     用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。win8上我装了sql2008和sql2000,现在分别用openrowset联接虚拟机上的SQL2000,都报这个错。
    而在虚拟机上使用openrowset 联 win8的SQL2008和SQL2000都正常。
      

  24.   

    虚拟机网络的设定方式呢?桥接/NAT都是不能从主机访问虚拟机的。
      

  25.   


    在主机上,可以打开虚拟机的共享目录,也可以直接使用查询分析器登陆虚拟机的SQL2000,可以查询,就是写命令就不行。
      

  26.   

    查询分析器用的驱动应该比较老的,换不同的驱动试试
    SELECT * FROM OPENROWSET('MSDASQL',''DRIVER={SQL Server};SERVER=192.168.80.104;UID=sa;PWD=;', 'SELECT * FROM pubs.dbo.authors')
    SELECT * FROM OPENROWSET('SQLOLEDB','SERVER=192.168.80.104;UID=sa;PWD=;', 'SELECT * FROM pubs.dbo.authors') 
      

  27.   


    第一列,语法不支持,第二条,报同样的错误:服务器: 消息 18452,级别 14,状态 1,行 1
    用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。