BEGIN...END (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Warehouse en Microsoft Fabric Base de datos SQL de Microsoft Fabric
Incluye una serie de instrucciones Transact-SQL para que se pueda ejecutar un grupo de instrucciones Transact-SQL en un bloque lógico de código. BEGIN
y END
son palabras clave de lenguaje de control de flujo.
Convenciones de sintaxis de Transact-SQL
Sintaxis
BEGIN
{ sql_statement | statement_block }
END
Argumentos
{ sql_statement | statement_block}
Cualquier instrucción transact-SQL válida o agrupación de instrucciones tal como se define mediante un bloque de instrucciones.
Comentarios
BEGIN...END
los bloques se pueden anidar.
Aunque todas las instrucciones Transact-SQL son válidas dentro de un BEGIN...END
bloque, ciertas instrucciones Transact-SQL no deben agruparse dentro del mismo lote o bloque de instrucciones.
Ejemplos
En el siguiente ejemplo, BEGIN
y END
definen un conjunto de instrucciones Transact-SQL que se ejecutan juntas. Si el BEGIN...END
bloque no está incluido, ambas ROLLBACK TRANSACTION
instrucciones se ejecutarían y se devolverán ambos PRINT
mensajes.
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
Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)
En el siguiente ejemplo, BEGIN
y END
definen un conjunto de instrucciones SQL que se ejecutan juntas. Si el BEGIN...END
bloque no está incluido, el ejemplo siguiente se ejecuta en un bucle continuo.
-- Uses AdventureWorksDW
DECLARE @Iteration INT = 0;
WHILE @Iteration < 10
BEGIN
SELECT FirstName,
MiddleName
FROM dbo.DimCustomer
WHERE LastName = 'Adams';
SET @Iteration += 1;
END;