SQL: How can I update a value on a column only if that value is null?

回眸只為那壹抹淺笑 提交于 2019-12-03 02:25:47

Id use coalesce for this: http://msdn.microsoft.com/en-us/library/ms190349.aspx

update Person
set Car = coalesce(@Car, Car), HairColour = coalesce(@HairColour, HairColour)

The following should work:

UPDATE Person
   SET Car = ISNULL(@Car, Car),
       HairColour = ISNULL(@HairColour, HairColour),
       ...

It uses the SQL Server ISNULL function, which returns

  • the first value if it is non-null,
  • or, otherwise, the second value (which, in this case, is the current value of the row).

You can use the isnull function:

update Person
set
  Car = isnull(@Car, Car),
  HairColour = isnull(@HairColour, HairColour),
  FavDrink = isnull(@FavDrink, FavDrink),
  FavFood = isnull(@FavFood, FavFood)
where PersonalID = @PersonalID

Set the column equal to itself with an isnull round it setting it to your parameter.

UPDATE
    YourTable
SET
   YourColumn = ISNULL(YourColumn, @yourParameter)
WHERE
    ID = @id
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!