我有一个场景,我在事务中循环遍历结果集,并且我需要在表中插入一个唯一的日期时间值,以便通过结果集进行每次迭代 - 每次都会重新计算 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
提前致谢!