存储过程中是否需要BEGIN/END关键字?

RJ.*_*RJ. 6 sql t-sql syntax

可能重复:
我什么时候需要在SQL Server中使用Begin/End Blocks和Go关键字?

例:

CREATE PROCEDURE DoSomething
AS
BEGIN
    SET NOCOUNT ON;

    -- Insert lots of statements in here, including other stored procedures.
END
Run Code Online (Sandbox Code Playgroud)

你需要BEGIN和END吗?如果你有它们会有什么不同吗?

Ode*_*ded 11

它们是可选的.

来自MSDN - CREATE PROCEDURE:

从命令的定义 -

AS {[BEGIN] sql_statement [;] [... n] [END]}

稍后在页面中:

{[BEGIN] sql_statement [;] [... n] [END]}

一个或多个Transact-SQL语句,包含过程的主体.您可以使用可选的BEGIN和END关键字来包含语句.


Joe*_*lli 6

CREATE PROCEDURE文档中所示,它们是可选的.

{[BEGIN] sql_statement [;] [... n] [END]}

一个或多个Transact-SQL语句,包含过程的主体.您可以使用可选的 [增加重点] BEGIN和END关键字来包含语句.有关信息,请参阅后面的"最佳实践","一般说明","限制和限制"部分.

就个人而言,我总是包括他们,但那只是我.