Udostępnij przez


Za pomocą WAITFOR

Instrukcja WAITFOR zawiesza wykonywanie partia, procedura przechowywana lub transakcji do:

  • Minął określonych odstępach czas.

  • Osiągnięto określoną porę dnia.

  • PRZYJĘCIE instrukcję modyfikuje lub zwraca wartość co najmniej jeden wiersz do kolejki usługa Broker.

Rzeczywiste opóźnienie może być inne niż określony czas, ponieważ jest zależne od poziomu aktywności serwera.Licznik czasu jest uruchamiany w momencie zaplanowania wątku skojarzonego z instrukcją WAITFOR.Jeśli serwer jest zajęty, wątek może nie zostać zaplanowany natychmiast, przez co opóźnienie może być większe niż określony czas.

Instrukcja WAITFOR jest określany za pomocą jednej z następujących klauzule:

  • DELAY słowo kluczowe, a po nim 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łowo kluczowe oczekiwania przez dwie sekundy przed wykonaniem SELECT instrukcja:

    WAITFOR DELAY '00:00:02';
    SELECT EmployeeID FROM AdventureWorks.HumanResources.Employee;
    
  • Słowo kluczowe czas, a po nim time_to_execute, który określa czas, o której kończy instrukcja WAITFOR.

    W poniższym przykładzie użyto TIME słowo kluczowe, aby czekać do 10 P.M. (22:00) aby przeprowadzić test z AdventureWorks Baza danych, aby upewnić się, że wszystkie strony są poprawnie przydzielony i używać:

    USE AdventureWorks;
    GO
    BEGIN
        WAITFOR TIME '22:00';
        DBCC CHECKALLOC;
    END;
    GO
    
  • Przyjęcie instrukcja klauzulę, która pobiera jeden lub więcej wiadomości z kolejki usługa Broker.Po określeniu WAITFOR za pomocą instrukcja przyjęcie instrukcja czeka na wiadomości przychodzące do kolejki, jeśli wiadomości nie są w danej chwili zainstalowane.

  • Słowo kluczowe TIMEOUT, a po nim timeout Określa długość czas (w milisekundach), Service Broker oczekuje na wiadomości przychodzące do kolejki. TIMEOUT może być określona w instrukcja przyjęcie lub w instrukcja GET GROUP KONWERSACJI.