0

私はストアド プロシージャを初めて使用します。このカーソルを作成しました。このカーソルは毎晩真夜中に実行され、廃止されていない場合は最後の日のレコードをロールオーバーします。実行すると、毎回エラーが発生します。何が原因なのかわかりません。どんな助けでも大歓迎です。

メッセージ 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 
4

1 に答える 1