2011-05-31 44 views
4

有没有一种方法来创建一些参数,如UPDATE stored_procedure:如何更新T-SQL记录和参数忽略更新了空

@param1 int = null, 
@param2 int = null, 
@param3 nvarchar(255) = null, 
@param4 bit = null, 
@id int 

与UPDATE语句将更新仅在非NULL字段

,所以如果我执行

spUpdateProcedure @param1=255, @id=1 

如果将更新记录@ ID = 1,但它会改变单场@参数1,将忽略更改其他@ param2,3,4。

换句话说,它不会在@ param2,3,4

感谢更改null值。

回答

5
UPDATE YourTable 
    SET Column1 = COALESCE(@param1, Column1), 
     Column2 = COALESCE(@param2, Column2), 
     ... 
    WHERE id = @id 
+0

打我一拳。 – JasonS 2011-05-31 19:08:27

0

您的修改语句,你可以做到这一点

update table 
set 
column1 = isnull(@param1,column1), 
column2 isnull(@param2,column2) 
+0

关于where子句? – 2011-05-31 19:18:56

+0

@Joe Stefanelli,哎呀,我的意思是在更新声明上说。感谢您指出了这一点! – atbebtg 2011-05-31 19:22:51