SQL脚本中是否需要BEGIN / END?

时间:2012-05-12 04:19:38

标签: sql tsql syntax sql-server-2008-r2

SQL脚本中是否需要BEGIN / END(一般情况下),或者用{和}替换它们是否合适

示例:

IF DB_ID('comics') IS NOT NULL        
    BEGIN
        PRINT 'Database exists - dropping the comics database.';
        DROP DATABASE comics;
    END

VS

IF DB_ID('comics') IS NOT NULL        
{
    PRINT 'Database exists - dropping the comics database.';
    DROP DATABASE comics;
}

我正在使用MS SQL Server 2008 R2

3 个答案:

答案 0 :(得分:2)

您应该使用BEGIN...END作为语句块。 Source

答案 1 :(得分:2)

IF...ELSE的文档显示:

IF Boolean_expression 
     { sql_statement | statement_block } 
[ ELSE 
     { sql_statement | statement_block } ] 

但是,Transact-SQL Syntax Conventions (Transact-SQL)页面显示:

{ } (braces)    Required syntax items. Do not type the braces.

因此,大括号不是您可以在代码中输入的内容,而只是显示正确的一个 sql_statementstatement_block IF声明。 (当然,只要您使用statement_blocksql_statementBEGIN就可以包含多个END。)

答案 2 :(得分:1)

从未在SQL中听说过{}。 SQL 92规范使用BEGIN END。 我认为BEGIN END是唯一的选择。