J'ai un script qui met à jour plusieurs colonnes. Cependant, je veux m'assurer que les colonnes de la list UPDATE
ne sont mises à jour que lorsqu'elles sont NULL. Voici le script:
DECLARE @blank nvarchar (255) = ''; UPDATE Table SET Column1 = @blank, Column2 = @blank, Column3 = @blank WHERE Column1 IS NULL OR Column2 IS NULL OR Column3 IS NULL
Cela ne fonctionnera pas, car toutes les colonnes seront mises à jour même si seule Column1 est null.
Je dois seulement mettre à jour les valeurs de colonne si cette valeur est NULL.
Vous pouvez utiliser des mises à jour conditionnelles:
update table set Column1 = coalesce(Column1, @blank), Column2 = coalesce(Column2, @blank), Column3 = coalesce(Column3, @blank) where Column1 IS NULL OR Column2 IS NULL OR Column3 IS NULL;
Si la valeur de la colonne n'est pas nulle, la valeur d'origine est affectée. Sinon, la valeur vide est affectée.