BEGIN...END (Transact-SQL)
适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库
包括一系列的 Transact-SQL 语句,从而可以执行一组 Transact-SQL 语句。 BEGIN 和 END 是控制流语言的关键字。
语法
BEGIN
{ sql_statement | statement_block }
END
注意
若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。
参数
{ 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
/*
Rolled back the transaction.
*/
示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
在下面的示例中,BEGIN
和 END
定义一系列一起运行的 SQL 语句。 如果不包括 BEGIN...END
块,以下示例将处于连续循环中。
-- Uses AdventureWorks
DECLARE @Iteration Integer = 0;
WHILE @Iteration <10
BEGIN
SELECT FirstName, MiddleName
FROM dbo.DimCustomer WHERE LastName = 'Adams';
SET @Iteration += 1 ;
END;
另请参阅
ALTER TRIGGER (Transact-SQL)
控制流语言 (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
END (BEGIN...END) (Transact-SQL)
反馈
https://aka.ms/ContentUserFeedback。
即将推出:在整个 2024 年,我们将逐步取消以“GitHub 问题”作为内容的反馈机制,并将其替换为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈