Bagikan melalui


MULAI... END (Transact-SQL)

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) titik akhir analitik SQL di Microsoft Fabric Warehouse dalam database Microsoft Fabric SQL 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

Sintaks

BEGIN
    { sql_statement | statement_block }
END

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;