存储过程上的SQL错误

存储过程上的SQL错误,sql,tsql,stored-procedures,Sql,Tsql,Stored Procedures,我不熟悉存储过程,我创建了这个游标,它将在每晚午夜运行,如果它没有中断,将滚动最后几天记录。执行时,我每次都会收到一个错误。我不确定是什么引起的。任何帮助都将不胜感激 Msg 102,15级,状态1,程序nt\U翻车费,第38行 “nt\U游标”附近的语法不正确 因此,首先,您不应该使用游标,因为这违背了使用SQL和数据库(基于集合的操作)的目的。就这样写下你的陈述: Update Log_book set nt_current_date = 'False' from Log_book inne

我不熟悉存储过程,我创建了这个游标,它将在每晚午夜运行,如果它没有中断,将滚动最后几天记录。执行时,我每次都会收到一个错误。我不确定是什么引起的。任何帮助都将不胜感激

Msg 102,15级,状态1,程序nt\U翻车费,第38行 “nt\U游标”附近的语法不正确


因此,首先,您不应该使用游标,因为这违背了使用SQL和数据库(基于集合的操作)的目的。就这样写下你的陈述:

Update Log_book set
nt_current_date = 'False'
from
Log_book inner join
Log_book L2
on L2.log_id = log_book.log_id
where
L2.test_id = '3' and  L2.nt_dc_status = 'FALSE';

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  log_book.mrn, log_book.fin, log_book.ref_dr, log_book.tech, log_book.equip_id, log_book.hookup_id, log_book.indication,     log_book.abnormality, log_book.location_id, log_book.test_id, null, log_book.start_date, getdate(), 'FALSE', 'TRUE'
            FROM log_book 
inner join
Log_book L2
on L2.log_id = log_book.log_id
where
L2.test_id = '3' and  L2.nt_dc_status = 'FALSE';

至于您的实际问题,您发布的只有33行,但错误发生在第38行。在存储过程的末尾是否有END语句?

插入日志簿中。。。。(选择
应该是
插入日志…选择不带括号的
。看起来这里根本不需要光标。而且,我认为你可以不用光标来完成这项工作…@MartinSmith OP发布的原始TSQL在过程结束时没有
结尾
,因此它没有解析并给出上面的错误。Aft呃,你的修订版,
END
在那里,代码解析正确(当然执行是不同的)。@Pondlife-啊,谢谢。我没有意识到edit无意中修复了原始问题。
Update Log_book set
nt_current_date = 'False'
from
Log_book inner join
Log_book L2
on L2.log_id = log_book.log_id
where
L2.test_id = '3' and  L2.nt_dc_status = 'FALSE';

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  log_book.mrn, log_book.fin, log_book.ref_dr, log_book.tech, log_book.equip_id, log_book.hookup_id, log_book.indication,     log_book.abnormality, log_book.location_id, log_book.test_id, null, log_book.start_date, getdate(), 'FALSE', 'TRUE'
            FROM log_book 
inner join
Log_book L2
on L2.log_id = log_book.log_id
where
L2.test_id = '3' and  L2.nt_dc_status = 'FALSE';