我正在寫一個帶有兩個參數的sql proc:@id和@id_group。如何從select中獲取值並將其用作sql中的變量?
考慮這個表group_info
ID ID_Group SupercededBy Superceded status
1 1 null null H
2 1 null null U
考慮到這些參數:
@id = 2 @id_group = 1
The first thing
我需要做的是設置行的SupercededBy
到@id
,其中[email protected] and [email protected]_group and status='H'
。
這是我寫的語句:
update group_info
set supercededby = @id
where [email protected]_group and status='H'
The second thing
我需要做的是設置行的Superceded
到其SupercededBy
已經剛剛從上述表述的更新id
。
所以在這個例子中,row 2
的Superceded
應該更新爲1
。
但是如何編寫語句?我想聲明可能是這樣的:
update group_info
set superceded = **old_id**
where [email protected]
我知道如何讓old_id
,這裏是
select id
from group_info
where [email protected]_group and status='H'
但我怎麼可以在上面select
和insert
使用的值update
報表的值爲old_id
?
最後的表應該是
ID ID_Group SupercededBy Superceded status
1 1 2 null H
2 1 null 1 U
我使用MS SQL Server中。
是啊,它的工作。謝謝 –
@JacksonTale我希望它!:) –
如果該組遇到多個ID,會發生什麼情況... – bummi