Gefährliches Statement?

27/11/2007 - 14:54 von Wilfried Hafner | Report spam
Hallo!

Ich habe eine Frage zu folgendem Statement:

INSERT INTO online_variables_archive
SELECT * FROM online_variables
WHERE time_stamp <= DATEADD(day, -40, GETDATE())

Wird hier GETDATE() nur einmal ausgeführt oder stàndig? So dass es
passieren könnte, dass das Statement unendlich lange làuft?

MfG Wilfried
 

Lesen sie die antworten

#1 Elmar Boye
27/11/2007 - 15:34 | Warnen spam
Halo Wilfried,

Wilfried Hafner schrieb ...
Ich habe eine Frage zu folgendem Statement:

INSERT INTO online_variables_archive
SELECT * FROM online_variables
WHERE time_stamp <= DATEADD(day, -40, GETDATE())

Wird hier GETDATE() nur einmal ausgeführt oder stàndig?



Nur einmal - also ungefàhrlich.
Ansonsten wàre GETDATE() (uam.) unbrauchbar, weil nicht
bestimmbar wàre, welcher Wert im Ausdruck verwendet wird.
Allgemein gehört GETDATE zu den nicht-deterministischen
Funktionen, deren Wert erst zum Zeitpunkt der Ausführung
ermittelt wird, siehe
http://msdn2.microsoft.com/de-de/li...78091.aspx
"Deterministische und nicht deterministische Funktionen"

Gruss
Elmar

Ähnliche fragen