代码之家  ›  专栏  ›  技术社区  ›  tsilb

DB2相当于SQL的go?

  •  2
  • tsilb  · 技术社区  · 17 年前

    我编写了一个DB2查询来执行以下操作:

    • 创建临时表
    • 从Monster查询中选择/插入到临时表中
    • 从临时表中选择/从旧表中删除
    • 从临时表中选择/插入到其他表中

    在MSSQL中,允许我一个接一个地运行命令,作为一个长查询。如果失败了,我可以用“go”命令来分隔它们。当我在DB2中尝试这样做时,我得到了错误:

    DB2CLI.DLL: ERROR [42601] [IBM][CLI Driver][DB2] SQL0199N The use of the reserved
    word "GO" following "" is not valid. Expected tokens may include: "". 
    SQLSTATE=42601 
    

    在临时表不超出范围的情况下,我可以使用什么来分隔这些指令?

    3 回复  |  直到 17 年前
        1
  •  4
  •   cjk    17 年前

    Go是在MSSQLStudio中使用的一种工具,我有自己的应用程序用于将upate运行到Live中,并使用“Go”将语句分开。

    DB2是否支持分号(;)?这是许多SQL实现中的标准分隔符。

        2
  •  1
  •   Scott Ivey    17 年前

    你试过只用分号而不是“go”吗?

    这个链接建议分号应该适用于DB2- http://www.scribd.com/doc/16640/IBM-DB2

        3
  •  1
  •   Matthew Vines    17 年前

    我将尝试包装您要在开始和结束中执行的操作,以设置范围。

    go不是SQL命令,它甚至不是TSQL命令。这是一条针对解析器的指令。我不知道DB2,但我想Go不是必要的。

    From Devx.com Tips

    虽然go不是T-SQL语句,但它通常用于T-SQL代码中,除非您知道它是什么,否则它可能是一个谜。那么它的目的是什么呢?好吧,它会导致从脚本开始或最后一个go语句(以更接近的为准)开始的所有语句被编译成一个执行计划,并独立于任何其他批处理发送到服务器。