当前位置:  开发笔记 > 编程语言 > 正文

GetDate()是否在事务中的循环内重新评估每次迭代?

如何解决《GetDate()是否在事务中的循环内重新评估每次迭代?》经验,为你挑选了1个好方法。

我有一个场景,我在事务中循环结果集,我需要通过结果集在每个迭代中插入一个唯一的日期时间值 - 每次都会重新计算GetDate()或者只是第一次计算它然后通过循环每次迭代都是一样的?

我的伪代码如下:

BEGIN TRANSACTION
GO

DECLARE @ID INT 
DECLARE @table TABLE (/* Columns */) 

WHILE (SELECT COUNT(*) FROM @table WHERE PROCESSED = 0) > 0
      BEGIN

            SELECT TOP 1 @ID = ID FROM @table WHERE PROCESSED = 0 

            -- INSERT GetDate() into child table at this point. 
            -- Will GetDate() be re-evaluated each time? 

            UPDATE @table SET PROCESSED = 1 WHERE ID = @ID 

      END

END TRANSACTION
GO

提前致谢!



1> Ben S..:

是.

如果要避免重新评估它,请在循环之前将其值存储在变量中,然后插入它.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有