T-SQL: оператор обновления в хранимой процедуре - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть хранимая процедура, которая обновляет данные таблицы.Хранимая процедура имеет необязательные параметры со значениями по умолчанию NULL, например:

@parameter1 datatype = NULL,
@parameter2 datatype = NULL,
@parameter3 datatype = NULL.

Мне нужна хранимая процедура для обновления столбца, только если соответствующий параметр не равен NULL.Я думал сделать следующее:

IF @parameter1 IS NOT NULL
    UPDATE Table 
    SET column1 = @parameter1 
    WHERE id = @id;

IF @parameter2 IS NOT NULL
    UPDATE Table 
    SET column2 = @parameter2 
    WHERE id = @id;

IF @parameter3 IS NOT NULL
    UPDATE Table 
    SET column3 = @parameter3 
    WHERE id = @id;

Я не знаю, насколько эффективным будет это решение, поскольку существует 42 столбца, которые необходимо обновить таким образом.Интересно, есть ли более эффективное решение?

1 Ответ

0 голосов
/ 12 сентября 2018

Что делать, если вы можете сделать?

UPDATE Table 
      SET column1 = coalesce(@parameter1, column1),
          column2 = coalesce(@parameter2, column2), 
          column3 = coalesce(@parameter3, column3)
WHERE id = @id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...