關於SQL中的Update語句

2021-09-22 07:10:55 字數 962 閱讀 7970

今天在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語句

今天在sql資料庫操作時需要將一張表中的資料update到另一張表中去,可是用我以往的寫法確怎麼也不能成功.如下 update table1 a set a.col1 b.col2 from table2 b where a.c b.c 上面的寫法似乎是在oracle的環境下可以實現的,具體沒有驗證...

SQL語句 UPDATE語句

update students set sname abcd gender 1 where sid 1 update students,students2 set students.sname students2.sname,students.gender students2.gender wher...

關於Update語句的鎖

環境 mssql2005,在read committed級別 語句a begin tran update table set f1 where f2 ttt 更新一行或多行 commit 注意為了看到效果這裡把commit注釋了 語句a影響的行集合為b 該語句造成的影響 1.該語句會阻塞,查詢結果集...