MULAI... END (SQL Bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

Menyertakan serangkaian pernyataan SQL Transact sehingga sekelompok pernyataan SQL Transact dapat dijalankan. BEGIN dan END adalah kata kunci bahasa kontrol aliran.

Topic link iconKonvensi Sintaksis T-SQL

Sintaks

BEGIN  
    { sql_statement | statement_block }   
END  

Catatan

Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

{ sql_statement | statement_block }
Adalah pernyataan transact-SQL atau pengelompokan pernyataan yang valid seperti yang didefinisikan dengan menggunakan blok pernyataan.

Keterangan

MULAI... Blok END dapat ditumpuk.

Meskipun semua pernyataan transact-SQL valid dalam BEGIN ... Blok END, pernyataan SQL Transact 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 AdventureWorks2012
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  
/*  
Rolled back the transaction.  
*/  

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 akan berada dalam perulangan berkelanjutan.

-- Uses AdventureWorks  

DECLARE @Iteration Integer = 0;
WHILE @Iteration <10  
BEGIN  
    SELECT FirstName, MiddleName   
    FROM dbo.DimCustomer WHERE LastName = 'Adams';
    SET @Iteration += 1  ;
END;

Lihat juga

ALTER TRIGGER (Transact-SQL)
Bahasa Kontrol Flow (SQL Transact)
CREATE TRIGGER (Transact-SQL)
END (BEGIN... END) (Transact-SQL)