Как обновить запись T-SQL и игнорировать UPDATE для параметров, где NULL - PullRequest
4 голосов
/ 31 мая 2011

Есть ли способ создать UPDATE сохраненную_процедуру с параметрами, такими как:

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

, и с помощью оператора UPDATE, который будет обновлять только те поля, которые не равны NULL

, поэтому, если я выполню

spUpdateProcedure @param1=255, @id=1

if обновит запись @ id = 1, но изменится только поле @ param1 и проигнорирует изменения других @ param2,3,4.

Другими словами, он не изменит значения для null в @ param2,3,4

Спасибо.

Ответы [ 2 ]

5 голосов
/ 31 мая 2011
UPDATE YourTable
    SET Column1 = COALESCE(@param1, Column1),
        Column2 = COALESCE(@param2, Column2),
        ...
    WHERE id = @id
0 голосов
/ 31 мая 2011

в вашем заявлении на редактирование, вы можете сделать это

update table
set
column1 = isnull(@param1,column1),
column2  isnull(@param2,column2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...