DB2相当于SQL的GO?

时间:2009-05-26 15:58:37

标签: tsql syntax db2

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

  • 创建临时表
  • 从怪物查询中选择/插入临时表
  • 从临时表中选择/从旧表中删除
  • 从临时表中选择/插入到不同的表中

在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 个答案:

答案 0 :(得分:4)

GO是在MSSQL Studio中使用的东西,我有自己的应用程序用于运行upates到live并使用“GO”来破坏语句。

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

答案 1 :(得分:1)

我会尝试在BEGIN和END中包装你想要做的事情以设置范围。

GO不是SQL命令,它甚至不是TSQL命令。它是解析器的指令。我不了解DB2,但我认为GO不是必需的。

From Devx.com Tips

  

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

答案 2 :(得分:1)

你尝试过使用分号而不是“GO”吗?

此链接表明分号应该适用于DB2 - http://www.scribd.com/doc/16640/IBM-DB2