insert into B_Table(字段名,。。)select * from OPENDATASOURCE('SQLOLEDB','Data Source=YICOL;uid=sa;pwd=apple2007').LH.dbo.a_Table

解决方案 »

  1.   

    insert into B.B_DataName..B_Table 
    select * 
    from openrowset('SQLOLEDB'
    ,'A';'用户名';'密码'
    ,A_DataName.dbo.A_Table)
      

  2.   

    insert into B_Table(字段名,。。)select * from OPENDATASOURCE('SQLOLEDB','Data Source=YICOL;uid=sa;pwd=apple2007').LH.dbo.a_Table
      
    --------------------------------------------------------------------------------
    有几处不太明白,请详细说明。
    'SQLOLEDB'在SQL数据库中不用变是吗?
    'Data Source=YICOL'这里指的是什么值?
    '.LH.dbo.a_Table'中的LH是什么?实例名吗?
      

  3.   

    insert into B.B_DataName..B_Table 
    select * 
    from openrowset('SQLOLEDB'
    ,'A';'用户名';'密码'
    ,A_DataName.dbo.A_Table)
    --------------------------------------------------------------------------
    我按您的写法写了一下select部分,可是总是提示我“SQL Server 不存在或拒绝访问。”怎么回事?
      

  4.   

    SQLOLEDB表示用于访问数据源的OLEDB提供程序
    对SQL Server2000 来说不用改YICOL = SQL服务器A(服务器名称)LH = A_DataName(数据库名称)
      

  5.   

    示例
    下面的示例访问来自某个表的数据,该表在 SQL Server 的另一个实例中。SELECT   *
    FROM      OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=ServerName;User ID=MyUID;Password=MyPass'
             ).Northwind.dbo.Categories
      

  6.   

    insert 
          B_DataName..B_Table  
    select * 
    from 
        OPENDATASOURCE( 
                       'SQLOLEDB',                     --这项固定
                       'Data Source=219.216.245.123;   --这项用ip或服务器名服务器A 
                        User ID=develop;               --用户名
                        Password=develop' ).A_DataName.dbo.A_Table这个语句需要在服务器B上运行,要在服务器A上运行换一下位置就行了
      

  7.   

    insert into B.B_DataName..B_Table 
    select * 
    from openrowset('SQLOLEDB'
    ,'A';'用户名';'密码'
    ,A_DataName.dbo.A_Table)
    -----------------------------------------------------------------------------------
    这种方法可以,但是反向时提示“SQL Server 不存在或拒绝访问。”反向时是通过我在企业管理器中注册的远程服务器,是不是两边的服务器配置上有区别。还有我自己机器SQL服务器的名字在企业管理器中叫(local)而在查询分析器中叫'work'我的机器名。两种名字都用过了还是提示“SQL Server 不存在或拒绝访问。”
    远程的服务器SQL Server已经打了补丁,我这边的没打补丁跟着有关系吗?
      

  8.   

    insert 
          B_DataName..B_Table  
    select * 
    from 
        OPENDATASOURCE( 
                       'SQLOLEDB',                     --这项固定
                       'Data Source=219.216.245.123;   --这项用ip或服务器名服务器A 
                        User ID=develop;               --用户名
                        Password=develop' ).A_DataName.dbo.A_Table这个语句需要在服务器B上运行,要在服务器A上运行换一下位置就行了------------------------------------------------------------------------------------
    这种方式还是不能实现。两边都不行。
    SELECT   *
    FROM      OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=A;User ID=sa;Password=sa'
             ).A_DataName.dbo.A_Table
    这样写应该没事吧,可是总是提示“SQL Server 不存在或拒绝访问。”
    在另一边提示:
    "OLE DB 提供程序 'SQLOLEDB' 不包含表 '"B_DataName"."dbo"."B_Table"'。该表可能不存在,或当前用户没有使用该表的权限。"
      

  9.   

    还是不行。查询分析器里从我这端的服务器直接select远端服务器的数据没问题。两种方法都行。但是选择远端的服务器进入查询分析器就无法select本地的服务器数据。大家看看有什么办法..