带 BEGIN/END 和不带 BEGIN/END 的 SP 的区别

use*_*567 8 sql-server t-sql

我发现一些 SP(存储过程)写成,

CREATE PROCEDURE [dbo].[XXX]
(
   -- Parameters
)
BEGIN

--- Actual Work

END
Run Code Online (Sandbox Code Playgroud)

还有一些作为

CREATE PROCEDURE [dbo].[XXX]
(
   -- Parameters
)


--- Actual Work
Run Code Online (Sandbox Code Playgroud)

是什么让它与众不同?

小智 12

没有区别。也就是说,它是可选的。

重要的是“批处理结束”,它在 SQL Server Management Studio 中表示为 GO


小智 5

没有什么真正的区别。创建过程语法将BEGINEND指定为可选。这是有道理的,因为CREATE PROCEDURE语句不能与单个批次中的其他语句组合。