我有一张表,上面写着“Table1”,如下所示
Table1
---------------
Name | Value
----------------
name1 | val1
name2 | val2
name3 | val3
name4 | val4
这里我需要根据“名称”更新“值”字段
我使用下面的存储过程来执行此操作,
CREATE PROCEDURE [dbo].[UpdateDetails]
(
@name1 NVARCHAR(MAX) = NULL,
@name2 NVARCHAR(MAX) = NULL,
@name3 NVARCHAR(MAX) = NULL,
@name4 NVARCHAR(MAX) = NULL,
)
AS
BEGIN
UPDATE Table1 SET Value = @name1 WHERE Name = 'name1';
UPDATE Table1 SET Value = @name2 WHERE Name = 'name2';
UPDATE Table1 SET Value = @name3 WHERE Name = 'name3';
UPDATE Table1 SET Value = @name4 WHERE Name = 'name4';
END
更新此表的最佳方式是什么?
最佳答案
试试这个代码:
UPDATE Table1
SET Value = CASE Name WHEN 'name1' THEN @name1
WHEN 'name2' THEN @name2
WHEN 'name3' THEN @name3
WHEN 'name4' THEN @name4
END
WHERE Name in ('name1', 'name2', 'name3', 'name4');
关于c# - 在单个查询中更新表中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38100639/