码迷,mamicode.com
首页 > 数据库 > 详细

关于SQL中的Update语句

时间:2016-10-03 12:38:24      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

今天在SQL数据库操作时需要将一张表中的数据Update到另一张表中去, 可是用我以往的写法确怎么也不能成功.代码如下:

update table1 a
      set a.Col1=b.Col2
    from table2 b
  where a.c=b.c

上面的写法似乎是在Oracle的环境下可以实现的, (具体没有验证过) 反正在SQL Server中是无法执行. 上网找了一下终于找到了解决方法, 如下:

Oralce和DB2都支持的语法:

UPDATE A  SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)

MS SQL Server不支持这样的语法,相对应的写法为:

UPDATE A     SET A1 = B1, A2 = B2, A3 = B3     FROM A LEFT JOIN B ON A.ID = B.ID

个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:

UPDATE A     SET A1 = B1, A2 = B2, A3 = B3    FROM A, B WHERE A.ID = B.ID

在Oracle和DB2中的写法就比较麻烦了,如下:

UPDATE A     SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)    WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)

 

关于SQL中的Update语句

标签:

原文地址:http://www.cnblogs.com/arxive/p/5928882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!