ストアドプロシージャにてフェッチから出ない
Aというテーブルの情報をカーソルにて取得し、
同じくAというテーブルに項目を変えてInsertするという
プロシージャを作成しています。
しかし、フェッチしたあとその処理から出ません。
(ちなみにフェッチ後のBEGIN~END内のInsert文を違うテーブルにして実行してみると処理から抜けました)
下記が該当プロシージャです。
CREATE PROCEDURE 販売プロシージャ AS
BEGIN
--変数宣言
DECLARE @販売NO INT
DECLARE @顧客NO INT
DECLARE @明細 NVARCHAR(25)
DECLARE @受注日 SMALLDATETIME
DECLARE @金額 INT
DECLARE @ステータス BIT
DECLARE @有効フラグ BIT
--カーソル宣言
DECLARE 販売カーソル CURSOR FOR
SELECT
販売NO,
顧客NO,
明細,
受注日,
金額,
ステータス,
有効フラグ
FROM 販売
WHERE YEAR(受注日) = YEAR(GETDATE())
AND MONTH(受注日) < MONTH(GETDATE())
--初期化処理
SET NOCOUNT OFF
--カーソルOPEN
OPEN 販売カーソル
FETCH NEXT FROM 販売カーソル
INTO
@販売NO,
@顧客NO,
@明細,
@受注日,
@金額,
@ステータス,
@有効フラグ
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO 販売 (
販売NO,
顧客NO,
明細,
受注日,
金額,
ステータス,
有効フラグ,
登録日,
更新日,
)VALUES(
@販売NO,
@顧客NO,
@明細,
@受注日,
@金額,
@ステータス,
@有効フラグ,
GETDATE(),
GETDATE(),
)
FETCH NEXT FROM 販売カーソル
INTO
@販売NO,
@顧客NO,
@明細,
@受注日,
@金額,
@ステータス,
@有効フラグ
END
CLOSE 販売カーソル
DEALLOCATE 販売カーソル
END
同じテーブルを使用する場合は、このような記述ではできないのでしょうか?
お礼
原因がわかりました❗ありがとうございます❗