2011-05-31 26 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