選択したフィールド値をクエリから変数に保存し、それを update ステートメントで使用するにはどうすればよいですか?
これが私の手順です:
次のことを行う SQL Server 2005 T-SQL ストアド プロシージャを作成しています。
- 請求書テーブルから請求書 ID のリストを取得し、Cursor に格納します
- カーソルから請求書 ID を取得 -> tmp_key 変数
- foreach tmp_key は、顧客テーブルから請求書クライアントのプライマリ連絡先 ID を見つけます
- クライアントの連絡先キーをプライマリ連絡先 ID で更新します
- カーソルを閉じる
これが私のコードです:
DECLARE @tmp_key int
DECLARE @get_invckey cursor
set @get_invckey = CURSOR FOR
select invckey from tarinvoice where confirmtocntctkey is null and tranno like '%115876'
OPEN @get_invckey
FETCH NEXT FROM @get_invckey into @tmp_key
WHILE (@@FETCH_STATUS = 0)
BEGIN
SELECT c.PrimaryCntctKey as PrimaryContactKey
from tarcustomer c, tarinvoice i
where i.custkey = c.custkey and i.invckey = @tmp_key
UPDATE tarinvoice set confirmtocntctkey = PrimaryContactKey where invckey = @tmp_key
FETCH NEXT FROM @get_invckey INTO @tmp_key
END
CLOSE @get_invckey
DEALLOCATE @get_invckey
PrimaryContactKey を保存し、次の update ステートメントの set 句で再度使用するにはどうすればよいですか? カーソル変数または int 型の別のローカル変数を作成する必要がありますか?