BEGIN...END (Transact-SQL)
Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en 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
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.
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;
Contenido relacionado
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de