Wie verursacht man eine Verzögerung der Ausführung für eine bestimmte Anzahl von Sekunden?
Das macht es nicht:
WAITFOR DELAY '00:02';
Was ist das richtige Format?
sql-server
sql-server-2008
tsql
Tschad
quelle
quelle
Antworten:
In der Dokumentation zu
WAITFOR()
ist das erforderliche Zeichenfolgenformat nicht explizit angegeben.Dies wird 2 Sekunden warten:
Das Format ist
hh:mi:ss.mmm
.quelle
Wie in anderen Antworten erwähnt, funktionieren alle folgenden Punkte für die standardmäßige stringbasierte Syntax.
Es gibt auch eine alternative Methode, um einen
DATETIME
Wert zu übergeben. Du denkst vielleicht, ich verwechsle das damitWAITFOR TIME
, aber es funktioniert auch fürWAITFOR DELAY
.Überlegungen zum Bestehen
DATETIME
:'1900-01-01'
) .DATETIME
als a richtig zu formatierenVARCHAR
.So warten Sie 2 Sekunden:
Ein Hinweis zum Warten auf
TIME
vsDELAY
:Haben Sie jemals bemerkt,
WAITFOR TIME
dass ein bereits verstrichenes Datum, selbst wenn es nur eine Sekunde dauert, niemals zurückkehren wird? Hör zu:Leider
WAITFOR DELAY
wird das gleiche tun, wenn Sie einen negativenDATETIME
Wert übergeben (ja, das ist eine Sache).Ich würde jedoch weiterhin die Verwendung
WAITFOR DELAY
über einen statischen Zeitraum empfehlen, da Sie jederzeit bestätigen können, dass Ihre Verzögerung positiv ist und dies so lange so bleibt, wie Ihr Code benötigt, um dieWAITFOR
Anweisung zu erreichen .quelle
Wie wäre es damit?
Wenn Sie "00:02" haben, wird dies als Stunden: Minuten interpretiert.
quelle
Versuchen Sie dieses Beispiel:
Das ist das ganze Skript:
quelle