大而全的update語句到底好不好

2021-10-10 15:41:32 字數 324 閱讀 4761

一般我們針對某個表寫更新語句的時候,往往有兩個寫法

1、寫乙個大而全的update語句,包含了所有欄位的更新,根據傳入引數是否為空決定是否執行,上層抽象乙個repository層進行業務封裝

2、針對不同業務場景不同更新字段分別寫更新的sql

但是最近遇到乙個問題,當然這是個select的語句,有個sql沒有按照預期的索引走,所以決定使用force index強制sql走指定的聯合索引;

但是執行的時候,發現這個select語句有多個使用場景,有的場景會傳唯一鍵id,此時如果強制走其他索引反而會適得其反

這種場景還是根據業務場景區分一下sql語句比較好。。。

複雜的update語句

1 update dim agent t set t.duty area select l.duty area from v mu ams agent l where l.iata code t.agent iata t.admin area select l.admin area from v m...

多表關聯的update語句

mssql的多表關聯的update語句 例如a表 存在一下字段 aid a1 a2 a3 a4 b表中存在字段 bid b1 b2 b3 b4 如果實現用b表的所有字段更新a表中相應的字段,在ms sql server裡面可以寫成 update a set a1 b.b1,a2 b.b2,a3 b....

關於Update語句的鎖

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