Bagikan melalui


MULAI... END (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Menyertakan serangkaian pernyataan Transact-SQL sehingga sekelompok pernyataan Transact-SQL dapat dijalankan dalam blok kode logis. BEGIN dan END merupakan kata kunci bahasa kontrol aliran.

Konvensi sintaks transact-SQL

Sintaksis

BEGIN
    { sql_statement | statement_block }
END

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

{ sql_statement | statement_block }

Setiap pernyataan Transact-SQL atau pengelompokan pernyataan yang valid seperti yang didefinisikan dengan menggunakan blok pernyataan.

Keterangan

BEGIN...END blok dapat ditumpuk.

Meskipun semua pernyataan Transact-SQL valid dalam blok BEGIN...END , pernyataan Transact-SQL tertentu tidak boleh dikelompokkan bersama dalam batch yang sama, atau blok pernyataan.

Contoh

Dalam contoh berikut, BEGIN dan END tentukan serangkaian pernyataan Transact-SQL yang dijalankan bersama-sama. BEGIN...END Jika blok tidak disertakan, kedua ROLLBACK TRANSACTION pernyataan akan dijalankan, dan kedua PRINT pesan akan dikembalikan.

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

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

Dalam contoh berikut, BEGIN dan END tentukan serangkaian pernyataan SQL yang berjalan bersama-sama. BEGIN...END Jika blok tidak disertakan, contoh berikut berjalan dalam perulangan berkelanjutan.

-- Uses AdventureWorksDW

DECLARE @Iteration INT = 0;

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

    SET @Iteration += 1;
END;