@idと@id_groupの2つのパラメーターを使用して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ここで、ID=@id and id_group=@id_group and status='H'。
これが私が書いたステートメントです:
update group_info
set supercededby = @id
where id_group=@id_group and status='H'
The second thing私がする必要があるのは、行Supercededを上記のステートメントから更新されidたSupercededByばかりのに設定することです。
したがって、この例では、row 2'sSupercededをに更新する必要があります1。
しかし、ステートメントを書く方法は?ステートメントは次のようなものになると思います。
update group_info
set superceded = **old_id**
where id=@id
私は取得する方法を知っていますold_id、ここにあります
select id
from group_info
where id_group=@id_group and status='H'
しかし、上記の値とselectステートメントの値をどのように使用できますか?insertupdateold_id
ファイナルテーブルは
ID ID_Group SupercededBy Superceded status
1 1 2 null H
2 1 null 1 U
MSSQLServerを使用しています。