私はストアド プロシージャを初めて使用します。このカーソルを作成しました。このカーソルは毎晩真夜中に実行され、廃止されていない場合は最後の日のレコードをロールオーバーします。実行すると、毎回エラーが発生します。何が原因なのかわかりません。どんな助けでも大歓迎です。
メッセージ 102、レベル 15、状態 1、手順 nt_rollover_charge、行 38 'nt_cursor' 付近の構文が正しくありません。
CREATE PROCEDURE nt_rollover_charge
AS
BEGIN
SET NOCOUNT ON;
DECLARE @id VARCHAR(20);
DECLARE nt_cursor CURSOR FOR
SELECT DISTINCT log_id
FROM log_book
WHERE test_id = '3'
AND nt_dc_status = 'FALSE'
AND nt_current_date = 'TRUE';
OPEN nt_cursor
FETCH NEXT FROM nt_cursor INTO @id
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE log_book
SET nt_current_date = 'False'
WHERE log_id = @id
INSERT INTO log_book
(mrn,
fin,
ref_dr,
tech,
equip_id,
hookup_id,
indication,
abnormality,
location_id,
test_id,
charged,
start_date,
nt_rollover_date,
nt_dc_status,
nt_current_date)
(SELECT mrn,
fin,
ref_dr,
tech,
equip_id,
hookup_id,
indication,
abnormality,
location_id,
test_id,
NULL,
start_date,
getdate(),
'FALSE',
'TRUE'
FROM log_book
WHERE @id = log_id)
-- This is executed as long as the previous fetch succeeds.
FETCH NEXT FROM nt_cursor INTO @id
END
CLOSE nt_cursor
DEALLOCATE nt_cursor
END