我的要求
在不使用选择查询的情况下更新同一表中的表的值
此查询不会影响任何行。
我的目标:Update val2 of #table where slno=1 with the value of val2 of slno=2
没有这种方法还有其他方法
Declare @val2 nvarchar(50)
select @val2=val2 from #table where slno=2
update #table set val2=@val2 where slno=1
create table #table
(
slno int identity(1,1),
val nvarchar(50),
val2 nvarchar(50)
)
insert into #table(val,val2)values('1',newID())
insert into #table(val,val2)values('1',newID())
insert into #table(val,val2)values('1',newID())
select * from #table
update #table set val2=T.val2
from #table T where slno=1 and T.slno=2
drop table #table
我在表格中有很多记录。 因此,如果我选择并更新它可能会影响性能。
答案 0 :(得分:0)
请提供更多信息。
你桌上只有2行吗?
为什么需要这种更新?
我想,你的数据库结构是错误的,但我无法准确说出,直到你解释为什么需要它。
无论如何,如果不使用select,我可以建议一种糟糕的方法。你可以自己加入桌子。添加专栏会更好,但如果你没有,你应该怎么做
UPDATE T1
SET T1.val2 = T2.val2
FROM #table T1 INNER JOIN #table T2
ON T1.slno = 1 AND T2.slno = 2