我想我在某种程度上接近让它工作,但由于某种原因我仍然会出错。
我有以下更新查询:
UPDATE DeviceAttribute
SET Details = CASE Name
WHEN 'Accessories' THEN @Accessories
WHEN 'Description' THEN @Description
WHEN 'Specification' THEN @Specification
ELSE Details
END
WHERE DeviceID = 10
Run Code Online (Sandbox Code Playgroud)
参数由不同的用户填写。我现在面临的问题是,即使您想更新单个字段,您仍然必须使用旧数据填写其他参数。因此,我想设置选项 IF @parameter IS NULL THEN THEN 保留已存储在数据库中的值。我试图找到一些解决方案,类似以下查询的内容似乎是解决方案,但我无法让它工作:
UPDATE DeviceAttribute
SET Details = CASE Name
WHEN 'Accessories' IS NOT NULL THEN @Accessories
WHEN 'Description' IS NOT NULL THEN @Description
WHEN 'Specification' IS NOT NULL THEN @Specification
ELSE Details
END
WHERE DeviceID = 10
Run Code Online (Sandbox Code Playgroud)
数据库存储在 SQL Server 2008 中
在此先感谢您的帮助。
编辑以澄清:
原来的表是这样的
DeviceID|Name …Run Code Online (Sandbox Code Playgroud)