例如:id:1;name:張三;value1:57;value2:54;value3:99
唯一約束name,再次插入張三時,value1+value1'
或者value1+value1',value2+value2',value3+value3'
能單獨累加一個value或者全部value,怎么分別實作?
uj5u.com熱心網友回復:
這個問題,有點 mysql中的 duplicate key on update的意思(不存在就插入,存在則更新)mysql案例:
insert into test_tbl (id,dr)
values (1,'2'),(2,'3'),...(x,'y')
on duplicate key update dr=values(dr);
sql server的話,稍微有點復雜
用 merge into 即可
案例:
MERGE INTO dbo.TargetTable AS T
USING dbo.SourceTable AS S
ON T.ID=S.ID
WHEN MATCHED --當上面On后面的T.id=S.id時,目標表中的資料被更新
THEN UPDATE SET T.[DESC]=S.[DESC]
WHEN NOT MATCHED --目標表中沒有的ID,在源表中有,則這些行插入到目標表
THEN INSERT VALUES(S.ID,S.[DESC])
WHEN NOT MATCHED BY SOURCE --目標表存在而源表不存在的資料行,則洗掉目標表中的這些行
THEN DELETE;
uj5u.com熱心網友回復:
sql server直接書寫的方式如果不方便的話,可以考慮用 表插入觸發器+merge into,這樣就沒問題了轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/285069.html
標籤:應用實例
上一篇:大量鍵值對redis使用場景