Articles

sqlskull

polecenie SQL WAITFOR jest używane do blokowania wykonania instrukcji batch, instrukcji transnarodowej lub dowolnej procedury składowanej do czasu osiągnięcia określonego czasu lub przedziału czasowego, lub też określone polecenie modyfikuje lub zwraca co najmniej jeden wiersz.

jest to bardzo przydatne w takim wymaganiu, gdy skrypt SQL musi czekać na określony czas przed wykonaniem następnej instrukcji.

podczas wykonywania polecenia WAITFOR transakcja jest uruchomiona i żadne inne żądania nie mogą być uruchamiane w ramach tej samej transakcji.

polecenie WAITFOR może być używane tylko z zapytaniem i nie może być używane z kursorem i widokami. wskazówki

– w tym instrukcja WAITFOR może spowolnić zakończenie procesu SQL serwera i może spowodować komunikat timeout .

składnia

WAITFOR (DELAY HH:MM:SS OR TIME HH:MM:SS)

WAITFOR DELAY – służy do wstrzymania zapytania na określony czas. Czas do wykonania zapytania. jak opóźnić wykonanie zapytania o dowolny określony przedział czasu.

WAITFOR TIME – służy do wstrzymania wykonania zapytania aż do osiągnięcia określonej pory dnia. Czas do wykonania, konkretny czas w ciągu dnia.

spójrzmy na przykład WAITFOR z opóźnieniem i TIME

waitfor DELAY

Po uruchomieniu instrukcji SQL po 15 sekundowym opóźnieniu.

SELECT GETDATE() as timethenWAITFOR DELAY '00:00:15'SELECT GETDATE() as timenow

jak widać różnica czasu między obiema instrukcjami wynosi 15 sek.

czas oczekiwania

z pomocą opcji czasu, możemy określić dokładną przyszłą porę dnia.

polecenie SQL uruchamia się po upływie określonego czasu.

DECLARE @waitfortime DATETIMESET @waitfortime = DATEADD(second,15,GETDATE())SELECT GETDATE() As timethenWAITFOR TIME @waitfortimeSELECT GETDATE() As timeNow

jak widać różnica czasu między obiema instrukcjami wynosi 15 sek.

787 total views, 6 views today