Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia administrada de Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de SQL Analytics en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL 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
Syntax
BEGIN
{ sql_statement | statement_block }
END
Arguments
{ 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.
Remarks
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.
Examples
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;