Udostępnij przez


Za pomocą WAITFOR

Instrukcja WAITFOR zawiesza wykonywanie partia, procedura składowana lub transakcji, dopóki:

  • Określony czas upłynął interwał.

  • Osiągnięto określoną czas.

  • Określić odbioru instrukcja modyfikuje lub zwraca co najmniej jeden wiersz do kolejki Service Broker.

Rzeczywisty czas opóźnienia mogą się różnić od określonego czasu i zależy od poziom aktywności serwera.Licznik Czas uruchamia podczas planowania skojarzona instrukcja WAITFOR wątek.Jeśli serwer jest zajęty, wątek mogą nie być natychmiast zaplanowane; Dlatego opóźnienie może być dłuższy niż określony czas.

WAITFOR instrukcja jest określany za pomocą jednego z następujących klauzul:

  • Słowo kluczowe opóźnienie następuje time_to_pass przed wykonaniem instrukcja WAITFOR.Czas oczekiwania przed wykonaniem instrukcja WAITFOR może być 24 godziny.

    W poniższym przykładzie użyto DELAY słowa kluczowego oczekiwania przez dwie sekundy przed wykonaniem SELECT instrukcja:

    WAITFOR DELAY '00:00:02';
    SELECT BusinessEntityID FROM AdventureWorks2008R2.HumanResources.Employee;
    
  • Słowa kluczowego czas następuje time_to_execute, która określa czas, który WAITFOR instrukcja zakończeniu.

    W poniższym przykładzie użyto TIME słowa kluczowego czekać aż do 10 P.M.(22:00) do wykonania AdventureWorks bazy danych, aby się upewnić, że wszystkie strony są poprawnie przydzielonych i używane:

    USE AdventureWorks2008R2;
    GO
    BEGIN
        WAITFOR TIME '22:00';
        DBCC CHECKALLOC;
    END;
    GO
    
  • ODBIERZ instrukcja klauzula, który pobiera jeden lub więcej wiadomości z kolejki Service Broker.Po określeniu WAITFOR instrukcją ODBIERZ instrukcja czeka na wiadomości przychodzące do kolejki, jeśli wiadomości nie są obecne.

  • Słowo kluczowe limitu czasu następuje timeout Określa w milisekundach czas, który Service Broker czeka na wiadomości przychodzące do kolejki.Limit czasu można określić w instrukcja odbioru lub w instrukcja GET grupy KONWERSACJI.