都还给老师了诶。 偶尔要用 实在是想不起来了。隔壁电脑  (IP 192.168.0.2  , 账号“sa”密码“123”)   上的 数据库A  里一个表  A1 ,
 A1表如下图 :
 
      a     b     c  
1     10    20    30
2     13    14    16
   现在,我要在我自己的数据库  B  里  的 表B1 中 增加一行数字。 
 B1表 如下图 :
     
      a   b   c   d   
 1    3   4   5   4
 2    2   2   1   1增加    一行 数,   a:4   b: 5  c:3    d: d的数字即 A1表中b那一列的 第一个数20

解决方案 »

  1.   


    insert into B1 SELECT 4,5,3,select top 1 b from  OPENDATASOURCE('sqloledb','data source=192.168.0.2;user id=sa;password=123').数据库A..A1
      

  2.   

    试试这个:
    insert into b (a,b,c,d)
    select 4,5,3,
           (
            SELECT top 1 b 
            FROM OPENROWSET('SQLOLEDB',
                            'server=192.168.0.2;uid=sa;pwd=123', --字符串
                            A.dbo.A)                           --直接写你的数据库和表的名称
           ) as d
      

  3.   

    把表的名称改了一下:insert into B1(a,b,c,d)
    select 4,5,3,
           (
            SELECT top 1 b 
            FROM OPENROWSET('SQLOLEDB',
                            'server=192.168.0.2;uid=sa;pwd=123', --字符串
                            A.dbo.A1)                           --直接写你的数据库和表的名称
           ) as d
      

  4.   

    创建连接就行了/*********************************************************************************************
    Function:创建连接服务器
    Author:Bean
    Date:2012-07-23
    *********************************************************************************************/
    --方法1:创建连接服务器
    --判断是否已存在该连接服务器,如果存在删除
    if exists(select 1 from sys.servers where name='LinkServer_BEAN')
    Begin
    exec master.dbo.sp_dropserver @server='LinkServer_BEAN',@droplogins='droplogins'
    End
    --创建连接服务器
    exec sp_addlinkedserver
    @server='SUNDB', --Linked Server Name
    @srvproduct='', --Product Name
    @provider='SQLOLEDB', --Provider
    @datasrc='127.0.0.1' --Data Address
    Go
    exec sp_addlinkedsrvlogin
    @useself='false',
    @rmtsrvname='SUNDB', --Linked Server Name
    @rmtuser='123', --User ID
    @rmtpassword='123' --Password
      

  5.   


    那个,如果 要引用的是A1表   b列  中的第二个 数值 应该怎么写呢你用的是sql server 2005以后的版本不,如果是2005以后的版本,比较容易,你试试:
    insert into B1(a,b,c,d)
    select 4,5,3,
           (
              select b
              from
              (
    SELECT *,
       row_number() over(order by getdate()) as rownum 
    FROM OPENROWSET('SQLOLEDB',
    'server=192.168.0.2;uid=sa;pwd=123', --字符串
    A.dbo.A1)                           --直接写你的数据库和表的名称
              )t
              where rownum = 2                
           ) as d