Articles

SqlSkull

instrucțiunea SQL WAITFOR este utilizată pentru a bloca executarea unei instrucțiuni de lot, a unei instrucțiuni transnaționale sau a oricărei proceduri stocate până când se atinge un anumit timp sau orice interval de timp sau o instrucțiune specificată modifică sau returnează cel puțin un rând.

este foarte util într-o astfel de cerință atunci când script SQL trebuie să aștepte un anumit timp înainte de a executa o declarație următoare.

în timpul executării declarației WAITFOR, tranzacția se execută și nicio altă solicitare nu poate rula sub aceeași tranzacție.

declarația WAITFOR poate fi utilizată numai cu interogare și nu poate fi utilizată cu CURSOR și vizualizări.

sfaturi – inclusiv WAITFOR declarație poate încetini finalizarea procesului SQL Server și poate duce la un mesaj timeout .

sintaxă

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

WAITFOR DELAY – este folosit pentru a întrerupe o interogare pentru o anumită durată de timp. Timp pentru a trece înainte de o interogare este executată. ca să întârzie executarea unei interogări de orice interval de timp specificat.

WAITFOR TIME – este folosit pentru a întrerupe executarea unei interogări până când se ajunge la o anumită oră a unei zile. Timp pentru a executa, un anumit timp într-o zi.

să ne uităm la un exemplu de WAITFOR cu întârziere și timp

WAITFOR întârziere

următoarele instrucțiuni SQL se execută după o întârziere de 15 secunde este finalizată.

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

după cum puteți vedea diferența de timp dintre ambele instrucțiuni este de 15 sec.

așteptați timp

cu ajutorul de opțiune de timp, putem specifica ora exactă viitoare a zilei.

următoarea Instrucțiune SQL rulează după ce a sosit timpul specificat.

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

după cum puteți vedea diferența de timp dintre ambele instrucțiuni este de 15 sec.

787 vizualizări totale, 6 vizualizări astăzi