SQL Server mise à jour de plusieurs colonnes

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.