我编写了一个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
如果没有临时表超出范围,我可以使用什么来界定这些指令?
答案 0 :(得分:4)
GO是在MSSQL Studio中使用的东西,我有自己的应用程序用于运行upates到live并使用“GO”来破坏语句。
DB2是否支持分号(;)?这是许多SQL实现中的标准分隔符。
答案 1 :(得分:1)
我会尝试在BEGIN和END中包装你想要做的事情以设置范围。
GO不是SQL命令,它甚至不是TSQL命令。它是解析器的指令。我不了解DB2,但我认为GO不是必需的。
虽然GO不是T-SQL语句,但它通常用在T-SQL代码中,除非你知道它是什么,否则它可能是个谜。那它的目的是什么?好吧,它会导致从脚本开头或最后一个GO语句(以较近者为准)的所有语句编译成一个执行计划,并独立于任何其他批次发送到服务器。
答案 2 :(得分:1)
此链接表明分号应该适用于DB2 - http://www.scribd.com/doc/16640/IBM-DB2