更新sql server中的多个寄存器
我有一个包含这些值的sql表更新sql server中的多个寄存器,sql,sql-server,Sql,Sql Server,我有一个包含这些值的sql表 name | parent | owner -------------------------------- Lv1 | Lv1 | Lv1 Lv2 | Lv1 | Lv1 Lv3 | Lv2 | Lv1 Lv2-1 | Lv1 | Lv1 我需要用相同的文本更新所有寄存器 示例:如果更新为
name | parent | owner
--------------------------------
Lv1 | Lv1 | Lv1
Lv2 | Lv1 | Lv1
Lv3 | Lv2 | Lv1
Lv2-1 | Lv1 | Lv1
我需要用相同的文本更新所有寄存器
示例:如果更新为lv1到lv1-1,则表结果为
name | parent | owner
====================================
lv1-1 | lv1-1 | lv1-1
Lv2 | lv1-1 | lv1-1
Lv3 | Lv2 | lv1-1
Lv2-1 | lv1-1 | lv1-1
====================================
如何编写此查询?您可以试试这个
declare @oldValue NVARCHAR(10)
set @oldValue = 'lv1'
update table
set
name = case when name = @oldValue then @oldValue + '-1' else name end,
parent = case when parent = @oldValue then @oldValue + '-1' else parent end,
owner = case when owner = @oldValue then @oldValue + '-1' else owner end
如果以前的值是lv1
,则会将每个列中的值更新为lv1-1
。否则它将保留旧值