select N from DYGX 查询出来有10000多条的数据Check表:
CheckID 
ABC001
BCD001
BCD002
CDE001
CDE002DYGX表
O       N
ABC001  A00001
BCD001  A00002
BCD002  A00003
CDE001  A00004
CDE002  A00005我想把 Check表 的 CheckID 批量对照改成 DYGX表 的 N 。
请问有什么方法呢?
declare @TestID char(10)
select @TestID=N from DYGX
begin
update [Check]
set CheckID = @TestID
where CheckID in (select o from DYGX)
end;
我只能想到这样,但是@TestID值始终取的是最后一条查询记录。求解,求救。

解决方案 »

  1.   

    update a set CheckID =(select n from DYGX where o=CheckID) from  Check
      

  2.   

    update a set CheckID =(select n from DYGX where o=a.CheckID) from  Check a
      

  3.   

    begin
    update Checktb
    set CheckID = N
    from DYGX
    where CheckID=DYGX.O
    end;
      

  4.   

    update [Check] set CheckID =(select n from DYGX where o=CheckID) from  [Check]
      

  5.   

    update check
    set CheckID = n.N
    from check m, dygx n
    where m.checkid = n.O
      

  6.   

    update a set a.checkid=b.n from check a,dygx b where a.checkid=b.o
    go
      

  7.   

    update a
    set checkid=b.n
    from [check] a,dygx b where a.checkid=b.o