加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何在SQL Server中组织无限循环?

发布时间:2020-12-12 16:28:13 所属栏目:MsSql教程 来源:网络整理
导读:我想在SQL Server 2005中使用无限WHILE循环,并在特定条件下使用BREAK关键字退出. 而真的不工作,所以我必须使用,而1 = 1. 有没有更好的方式来组织无限循环? 我知道我可以使用goto,但是当1 = 1开始…结束时结构看起来更好. 解决方法 除了WHILE 1 = 1作为其他答
我想在SQL Server 2005中使用无限WHILE循环,并在特定条件下使用BREAK关键字退出.

而真的不工作,所以我必须使用,而1 = 1.
有没有更好的方式来组织无限循环?

我知道我可以使用goto,但是当1 = 1开始…结束时结构看起来更好.

解决方法

除了WHILE 1 = 1作为其他答案建议,我经常添加一个“超时”到我的SQL“infintie”循环,如下例所示:
DECLARE @startTime datetime2(0) = GETDATE();

-- This will loop until BREAK is called,or until a timeout of 45 seconds.
WHILE (GETDATE() < DATEADD(SECOND,45,@startTime))
BEGIN
    -- Logic goes here: The loop can be broken with the BREAK command.

    -- Throttle the loop for 2 seconds.    
    WAITFOR DELAY '00:00:02';
END

我发现上述技术在从long polling AJAX后端调用的存储过程中很有用.在数据库端进行循环可以使应用程序不必经常访问数据库来检查新数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读