使用single来更新不同的字段

时间:2012-03-09 07:18:18

标签: sql sql-server

我在SQL server中有一个名为“tblProperties”的表,其字段为

productid
length
weight
height
depth

我将以不同的时间间隔更新length,weight,height。 现在我正在为每个属性更新编写一个单独的更新存储过程。

我们如何为所有人编写单个更新查询/ SP,以便我可以传递“productid”和更新字段,如weightheight等。

1 个答案:

答案 0 :(得分:3)

declare @length INT, @weight INT, @height INT, @depth INT
set @length = 7878
SET @weight = NULL
SET @height = NULL
SET @depth = NULL


update tblProperties
SET length= (CASE WHEN @length IS NULL THEN length ELSE @length END),
    weight = (CASE WHEN @weight IS NULL THEN weight ELSE @weight END),
    height = (CASE WHEN @height IS NULL THEN height ELSE @height END),
    depth = (CASE WHEN @depth IS NULL THEN depth ELSE @depth END),
WHERE productid = xxxxxxx