Aracılığıyla paylaş


BAŞLAMAK... SON (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Bir grup Transact-SQL deyiminin mantıksal bir kod bloğunda yürütülebilmesi için bir dizi Transact-SQL deyimini içine alır. BEGIN ve END akış denetimi dili anahtar sözcükleridir.

Transact-SQL söz dizimi kuralları

Syntax

BEGIN
    { sql_statement | statement_block }
END

Arguments

{ sql_statement | statement_block }

Deyim bloğu kullanılarak tanımlanan geçerli Transact-SQL deyimi veya deyim gruplandırma.

Remarks

BEGIN...END bloklar iç içe yerleştirilebilir.

Tüm Transact-SQL deyimleri bir BEGIN...END blok içinde geçerli olsa da, belirli Transact-SQL deyimleri aynı toplu iş veya deyim bloğu içinde birlikte gruplandırılmamalıdır.

Examples

Aşağıdaki örnekte birlikte BEGINEND yürütülen bir dizi Transact-SQL deyimi tanımlayın. BEGIN...END Blok dahil değilse, her iki deyim de ROLLBACK TRANSACTION yürütülür ve her iki PRINT ileti de döndürülür.

USE AdventureWorks2022;
GO

BEGIN TRANSACTION
GO

IF @@TRANCOUNT = 0
BEGIN
    SELECT FirstName, MiddleName
    FROM Person.Person
    WHERE LastName = 'Adams';

    ROLLBACK TRANSACTION;

    PRINT N'Rolling back the transaction two times would cause an error.';
END;

ROLLBACK TRANSACTION;

PRINT N'Rolled back the transaction.';
GO

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

Aşağıdaki örnekte birlikte BEGINEND çalışan bir dizi SQL deyimi tanımlayın. BEGIN...END Blok dahil değilse, aşağıdaki örnek sürekli döngüde çalışır.

-- Uses AdventureWorksDW

DECLARE @Iteration INT = 0;

WHILE @Iteration < 10
BEGIN
    SELECT FirstName,
        MiddleName
    FROM dbo.DimCustomer
    WHERE LastName = 'Adams';

    SET @Iteration += 1;
END;