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

时间:2012-10-02 20:34:23

标签: sql tsql syntax

  

可能重复:
  When do I need to use Begin / End Blocks and the Go keyword in SQL Server?

示例:

CREATE PROCEDURE DoSomething
AS
BEGIN
    SET NOCOUNT ON;

    -- Insert lots of statements in here, including other stored procedures.
END

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

2 个答案:

答案 0 :(得分:11)

它们是可选

来自MSDN - CREATE PROCEDURE

从命令的定义 -

  

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

稍后在页面中:

  

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

     

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

答案 1 :(得分:6)

the CREATE PROCEDURE documentation所示,它们是可选的。

  

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

     

一个或多个   包含过程主体的Transact-SQL语句。您可以   使用 可选 [强调添加] BEGIN和END关键字来包含语句。对于   信息,请参阅最佳实践,一般说明和限制   以及后面的限制部分。

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