BEGIN...END (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库
将一系列 Transact-SQL 语句括起来,以便可以在逻辑代码块中执行一组 Transact-SQL 语句。 BEGIN
并且 END
是流语言关键字的控制。
语法
BEGIN
{ sql_statement | statement_block }
END
参数
{ sql_statement | statement_block}
使用语句块定义的任何有效的 Transact-SQL 语句或语句分组。
注解
BEGIN...END
块可以嵌套。
尽管所有 Transact-SQL 语句在块中 BEGIN...END
都有效,但某些 Transact-SQL 语句不应在同一批或语句块中组合在一起。
示例
在下面的示例中,BEGIN
和 END
定义一系列一起执行的 Transact-SQL 语句。 BEGIN...END
如果未包含该块,则两个ROLLBACK TRANSACTION
语句都将执行,并且将返回这两PRINT
条消息。
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
示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
在下面的示例中,BEGIN
和 END
定义一系列一起运行的 SQL 语句。 如果未包含该 BEGIN...END
块,则以下示例在连续循环中运行。
-- Uses AdventureWorksDW
DECLARE @Iteration INT = 0;
WHILE @Iteration < 10
BEGIN
SELECT FirstName,
MiddleName
FROM dbo.DimCustomer
WHERE LastName = 'Adams';
SET @Iteration += 1;
END;