日期:2014-05-17  浏览次数:20773 次

update set 这个字段不定怎么办=value
工资表 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 用法