Udostępnij za pomocą


PRZERWA (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

FUNKCJA BREAK kończy bieżącą pętlę WHILE. Jeśli bieżąca pętla WHILE jest zagnieżdżona wewnątrz innej, funkcja BREAK zamyka tylko bieżącą pętlę, a kontrolka zostanie nadana następnej instrukcji w pętli zewnętrznej.

BREAK jest zwykle wewnątrz instrukcji IF.

Examples

Przykład dla programu SQL Server

Wyobraź sobie tabelę, w której oczekiwano wartości po zakończeniu innego procesu antycedentowego:

WHILE (1=1)
BEGIN
   IF EXISTS (SELECT * FROM ##MyTempTable WHERE EventCode = 'Done')
   BEGIN
      BREAK;  -- 'Done' row has finally been inserted and detected, so end this loop.
   END

   PRINT N'The other process is not yet done.';  -- Re-confirm the non-done status to the console.
   WAITFOR DELAY '00:01:30';  -- Sleep for 90 seconds.
END

Przykład dedykowanej puli SQL usługi Azure Synapse

DECLARE @sleeptimesec int = 1;
DECLARE @startingtime datetime2(2) = getdate();

PRINT N'Sleeping for ' + CAST(@sleeptimesec as varchar(5)) + ' seconds'
WHILE (1=1)
BEGIN
  
    PRINT N'Sleeping.';  
    PRINT datediff(s, getdate(),  @startingtime)

    IF datediff(s, getdate(),  @startingtime) < -@sleeptimesec
        BEGIN
            PRINT 'We have finished waiting.';
            BREAK;
        END
END

Zobacz też