我有一个创建为存储过程的脚本。该脚本是一个无限循环,没有任何东西可以让它无限期地等待。
WHILE 1=1
BEGIN
--Irrelevant code: Multiple record reads and writes
WAITFOR DELAY '00:00:10:000' --wait for 10 seconds before continuing.
END
我创建了一个启动该过程的SQL Server代理作业,但当我启动SQL作业时,无法停止它而不重新启动SQL Server代理或导致该过程崩溃。它不响应任何停止请求。
我能看到的唯一解决方案是将WHILE 1=1
修改为WHILE [value from table]=1
,但这不是一个优雅的解决方案,仍然无法使用SQL Agent停止作业。
我想知道的是:
是否有可能以某种方式改变程序,使服务器代理可以停止,但不删除循环(循环外有变量,我宁愿不将它们传递给表)?