BREAK (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

BREAK beendet die aktuelle WHILE-Schleife. Wenn die aktuelle WHILE-Schleife mit einer anderen verschachtelt ist, beendet BREAK nur die aktuelle Schleife, und die Steuerung wird für die nächste Anweisung in der äußeren Schleife erteilt.

BREAK befindet sich in der Regel innerhalb einer IF-Anweisung.

Beispiele

Beispiel für SQL Server

Stellen Sie sich eine Tabelle vor, in der ein Wert erwartet wird, wenn ein anderer vorangehender Prozess abgeschlossen ist:

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

Beispiel für dedizierten SQL-Pool in 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

Weitere Informationen