工资表 name item1 item2 item3 ... item50
王某 500 500 200 300
工资项目表 itemNo itenName
item1 基本工资
item2 奖金
item3 XX
...
item50 XX
现要update 王某 的 奖金。已知条件只有 王某 和 奖金。求解
- SQL code
CREATE PROCEDURE spUpdateWageRecord @ItemName VARCHAR(50), @ItemValue MONEY, @ID VARCHAR(4)AS IF NOT EXISTS(SELECT gj.GH FROM GZ_JLB gj WHERE gj.GH = @ID) INSERT INTO GZ_JLB(GH,XM) SELECT zpu.GH, zpu.XM FROM ZD_PER_USER zpu WHERE zpu.GH = @ID; --判断是否有此人,没有就插入 UPDATE GZ_JLB SET (SELECT gx.xmdm FROM GZ_XMB gx WHERE gx.xmmc = @ItemName) = @ItemValue WHERE GH = @ID
------解决方案--------------------
这里就可以使用Merge命令了,这个典型操作.
------解决方案--------------------
SQL SERVER 2008 关键字 merge 用法