Обновление SQL, если параметр не является нулевым или пустым
Я искал некоторые способы проверить, не является ли параметр SQL Server нулевым или пустым, но я не уверен, что лучший способ использовать это при обновлении нескольких столбцов:
У меня сначала был этот код, который обновлялся без проверки пустых или нулевых значений:
UPDATE [Users]
SET FirstName = @firstname, City = @city, Address = @address, ....
WHERE ID = @iduser
Затем я добавил предложение IF
перед обновлением, он работает таким образом, но я не уверен, что это лучший способ сделать это, это будет долго, если мне нужно обновить несколько столбцов.
--Check if parameter is not null or empty before updating the column
IF (@firstname IS NOT NULL AND @firstname != '')
UPDATE [Users]
SET FirstName = @firstname
WHERE ID = @iduser
IF (@city IS NOT NULL AND @city != '')
UPDATE [Users]
SET City = @city
WHERE ID = @iduser
...
...
Если значение Null или Empty, мне не нужно обновлять, просто сохраните исходное значение в базе данных.
Ответы
Ответ 1
Не уверен, чего вы пытаетесь достичь, если он пуст, но я бы попробовал использовать IsNull()
Я не думаю, что есть IsBlank()
, но не должно быть слишком сложно писать себя
Используя только IsNull
, ваш запрос будет выглядеть примерно так:
Update [Users]
set FirstName = IsNull(@FirstName, FirstName),
City = IsNull(@City, City)
....
Where ...
это обновит строку с параметром, если они НЕ являются нулевыми, в противном случае обновите его сами, иначе ничего не измените.
Ответ 2
Попробуйте этот код SQL, он работает для меня очень хорошо:
UPDATE gp_customer
SET ville = 'NO'
WHERE ville
IS NULL
OR ville = ''
Обновить только значение NULL или пустое.