私はを理解していますが、GETDATE()
は常にループ内で異なる値を返すようにしてください。WHILEループでGETDATE()を使用すると常に同じ値が返されます
私はこのTSQL持っている:
DECLARE @WaitUntilTime DATETIME = DATEADD(SECOND, 10, GETDATE())
WHILE (DATEDIFF(SECOND, GETDATE(), @WaitUntilTime) > 0)
BEGIN
SELECT GETDATE(), @WaitUntilTime
END
をしかし、それは常にGETDATE()
に同じ値を出力しています、と私はそれがしたいようにループが10秒後に終了することはありません。どうして?
また、同様のケースのように聞こえるthis answerが見つかりましたが、SELECT
クエリではGETDATE()
が1回評価されます。それがwhileループにも当てはまるかどうかはわかりません。
ところで、私はWAITFOR
について知っていますが、私は1つのバッチ内に遅延を導入したいので使用できません。 10秒の遅延の後
あなたの選択SET – scsimon