J'ai cherché des moyens de vérifier si un paramètre SQL Server n'est pas nul ou vide, mais je ne sais pas quel est le meilleur moyen de l'utiliser lors de la mise à jour de plusieurs colonnes:
Au début, j'avais ce code qui se mettait à jour sans vérifier les valeurs vides ou Null:
UPDATE [Users]
SET FirstName = @firstname, City = @city, Address = @address, ....
WHERE ID = @iduser
Ensuite, j'ai ajouté une clause IF
avant la mise à jour. Cela fonctionne de cette façon, mais je ne suis pas sûr que ce soit la meilleure façon de le faire. La mise à jour de plusieurs colonnes sera longue.
--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
...
...
Si la valeur est Null ou Empty, je n'ai pas besoin de mettre à jour, conservez simplement la valeur d'origine dans la base de données.
je ne sais pas ce que vous essayez de faire si c'est vide, mais j'essaierais d'utiliser IsNull()
. Je ne pense pas qu'il existe un IsBlank()
, mais il ne devrait pas être trop difficile d'écrire vous-même
En utilisant seulement IsNull
, votre requête ressemblerait à quelque chose comme ...
Update [Users]
set FirstName = IsNull(@FirstName, FirstName),
City = IsNull(@City, City)
....
Where ...
cela mettra à jour la ligne avec la valeur param si elles ne sont PAS NULL, sinon la mettre à jour pour elle-même, c'est-à-dire ne rien changer.
Essayez ce codeSQLnative ça marche très bien pour moi:
UPDATE gp_customer
SET ville = 'NO'
WHERE ville
IS NULL
OR ville = ''
Mise à jour juste la valeur NULL ou vide.