热情软件屋

 

如何用B表中的数据去更新A表中的数据


编号:QA001923
建立日期: 1999年10月28日 最后修改日期:1999年10月30日
所属类别:

Jacky Haung:
    假设有如下两个表A和B
    A: XMDH YE B:XMDH YE
     1000 100 1000 21
     2000 200 2000 50
     3000 300
    现在我想用B表中的数据去更新A表中的数据,想用SQL语言这样写
    UPDATE A SET A.YE=B.YE WHERE A.XMDH=B.XMDH
    结果发现在VB中不支持这样的操作!这是怎么回事?如果确实是不支持的话,那么这样的操作又该怎么样用其他的SQL语言代替呢?要知道数据量实在是太大了,总不能叫我一条条去FIND??我有想过先将A表数据全部删除,再将B表数据SELECT INTO 表A,但是一来感觉挺苯的,二来并不是每次更新所有的数据,因此这样的操作实在是不妥,不知你有没有更好的方法?

回答:

    Chen Zhenjun的意见:
    UPDATE A,B SET A.YE=B.YE WHERE A.XMDH=B.XMDH
    于溪玥的意见:
    请看引自Ms SQL 7的《Transact-SQL HELP》之"UPDATE (T-SQL)"目录:
    ...
    UPDATE titles
    SET ytd_sales = (SELECT SUM(qty)
     FROM sales
     WHERE sales.title_id = titles.title_id
     AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales))
    FROM titles, sales
    ...
    
    正确的作法(在Ms SQL 7 Transact-SQL实现):
     UPDATE A
     SET YE=B.YE
     FROM A INNER JOIN B ON A.XMDH=B.XMDH
    注意:
     Access 不支持 UPDATE...SET... 的FROM 子句!
    songyq的意见:
    按照如下的SQL语句即可:
    UPDATE A INNER JOIN B ON A.XMBH = B.XMBH SET A.YE = [B].[YE]

此问题由Chen Zhenjun等回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio