ITPub博客

首页 > 数据库 > 数据库开发技术 > 关于使用多表做update的语法

关于使用多表做update的语法

原创 数据库开发技术 作者:kitesky 时间:2005-01-23 17:49:02 0 删除 编辑

一、当用一个表中的数据来更新另一个表中的数据,T-SQL提供多种写法(下面列出了二种),但建议用第一种写法,虽然传统,但结构清晰。
并且要注意,当用一个表中的数据来更新另一个表中的数据时,二个表一定要有关联!

1.
update  t1 set t1.c2 = t2.c2
from  t2
where  t1.c1 = t2.c1

2.
Update  t1 set t1.c2 = t2.c2
from  t1 inner join t2 on t1.c1 = t2.c1

二、FROM 子句中指定的表的别名不能作为 SET column_name 子句中被修改字段的限定符使用。例如,下面的内容无效:
UPDATE titles
    SET t.ytd_sales = t.ytd_sales + s.qty
    FROM titles t, sales s
    WHERE t.title_id = s.title_id
    AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

若要使上例合法,请从列名中删除别名 t 或使用本身的表名。
1.
UPDATE titles
    SET ytd_sales = t.ytd_sales + s.qty
    FROM titles t, sales s
    WHERE t.title_id = s.title_id
    AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
2.
UPDATE titles
    SET titles.ytd_sales = t.ytd_sales + s.qty
    FROM titles t, sales s
    WHERE t.title_id = s.title_id
    AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

[@more@]
                                                            

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/66009/viewspace-787708/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 关于collation参数
请登录后发表评论 登录
全部评论

注册时间:2009-04-22

  • 博文量
    273
  • 访问量
    2172282