有多个数据库,分别为A、B、C、D、……A库中的TableA结构如下TableA
------------------------
ID | Number | DataBase
------------------------
1  | 25     | B
------------------------
2  | 12     | C
------------------------
3  | 25     | D
------------------------
4  | 10     | E这时我要在B库中执行一段Updata的SQL语句,更新B库中的字段值,但有个条件,就是判断一下B库在A库的TableA表中的Number是不是等于25,这个句语要怎么写呢?

解决方案 »

  1.   

    update b.dbo.tableA
    set ...
    from b.dbo.tableA ba , a.dbo.tableA aa
    where ba.关键字 = aa.关键字 and aa.number = 25
      

  2.   


    if exists (select 1 from [A].[dbo].[TableA] where DataBase='B' and Number=25)
    begin
    update .............
    end
      

  3.   

    触发器use database name
    select @number=number from tbl
    if @number=25
    updtae ......
    else
    update......关于库数据库的操作:
      

  4.   

    一 两个数据库放在一个服务器上,跨库访问
    二 分布式跨库访问
    1 跨数据库访问
    第一种方式
    SELECT * FROM OPENDATASOURCE(
     'SQLOLEDB',
     'Data Source=远程ip;User ID=sa;Password=密码'
     ).库名.dbo.表名
     WHERE 条件
     
    exec sp_configure 'show advanced options',1
    reconfigure
    exec sp_configure 'Ad Hoc Distributed Queries',1
    reconfigureupdate a set a.xx=@xx from 表 a, (select id from OPENDATASOURCE('SQLOLEDB','Data Source=127.0.0.1;User ID=sa;Password=sa').数据库名称.dbo.表 where Number=25) c
    where a.id=c.id
     
    2 在sql server组->服务->安全性->链接服务器下建立一个具有别名的链接服务器。然后通过以下方式访问:
    SELECT * FROM [链接服务器名].库名.dbo.表名
     WHERE 条件
      

  5.   

    有多个数据库,分别为A、B、C、D、……A库中的TableA结构如下TableA
    ------------------------
    ID | Number | DataBase
    ------------------------
    1 | 25 | B
    ------------------------
    2 | 12 | C
    ------------------------
    3 | 25 | D
    ------------------------
    4 | 10 | E这时我要在B库中执行一段Updata的SQL语句,更新B库中的字段值,
    但有个条件,就是判断一下B库在A库的TableA表中的Number是不是等于25,这个句语要怎么写呢?
    update  tb  set 字段=... from A.TABLEA,B.TABLEB where A.TABLEA.字段1=B.TABLEB.字段1 and A.TABLEA.Number=25
      

  6.   

    谢谢楼上几位同学的回答,最后的语句我是这么写的UPDATE tb SET ... WHERE (select count(*) from A.dbo.TableA where (select db_name() as DatabaseName)=DataBase and Number=25)>0