代码之家  ›  专栏  ›  技术社区  ›  Syntax Error ine

IF之后执行多少行?

  •  5
  • Syntax Error ine  · 技术社区  · 7 年前

    考虑SQL脚本的一部分,如下所示:

    IF OBJECT_ID('dbo.tableName', 'U') IS NOT NULL
    ALTER TABLE [dbo].[tableName]
    DROP CONSTRAINT PK_tableName
    DROP TABLE dbo.tableName
    

    如果 tableName 存在,是否所有三行都已执行?接下来我的脚本的其余部分如何(不包括在内-它创建了表);有没有办法限制在 IF 陈述我找不到这个问题的答案,因为这是一个模棱两可的搜索。

    2 回复  |  直到 7 年前
        1
  •  5
  •   Zoe - Save the data dump 张群峰    4 年前

    按以下方式操作:

    IF OBJECT_ID('dbo.tableName', 'U') IS NOT NULL
        BEGIN
            ALTER TABLE [dbo].[tableName]
            DROP CONSTRAINT PK_tableName;
            DROP TABLE dbo.tableName;
        END
    

    如果您不使用 BEGIN END 块中,只有第一条sql语句将在 IF 条件和最后的sql语句将在每次运行时执行,如果 tableName 不存在。

        2
  •  2
  •   i486    7 年前

    只执行第一个查询。对于您需要的1个以上 BEGIN - END