GetDate()は、トランザクション内のループ内の反復ごとに再評価を取得していますか?
-
13-09-2019 - |
質問
私はトランザクション内で結果セットをループしていると私は、結果セットを通じて反復ごとにテーブル内のユニークなdatetime値を挿入する必要があるシナリオを持っている - たびに再計算されるか、それだけで計算されます)(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
事前に感謝します!
解決
のはい。の
あなたは、それを再評価避けるループの前に変数にその値を格納し、代わりにそれを挿入する場合。
所属していません StackOverflow