2009-05-26 70 views
2

我已經寫了DB2查詢執行以下操作:從舊錶DB2相當於SQL的GO?

  • 從怪物查詢創建臨時表
  • 選擇/插入到臨時表
  • 從臨時表中選擇/刪除
  • 從臨時表中選擇/插入不同的表

在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 

我可以用分隔這些指令沒有臨時表走出去的範圍有多大?

回答

4

GO的東西是在MSSQL工作室使用的,我有我自己的應用程序運行upates到現場,並使用「GO」,以打散的語句。

DB2是否支持分號(;)?這是許多SQL實現中的標準分隔符。

+0

這是在DB2有點複雜。通常,默認分隔符是分號,但是,在存儲過程等主體中,分隔符總是分號,而在CREATE PROCUEDURE/whatever命令後面使用的分隔符必須是別的。您可以在您從中調用DB2的環境中覆蓋此分隔符。傳統上,\\用作「外部分隔符」,但您可以使用任何其他字符串。 – 2009-05-26 16:26:33

1

我會嘗試在BEGIN和END中包裝你要做的事情來設置範圍。

GO不是SQL命令,它甚至不是TSQL命令。這是解析器的指令。我不知道DB2,但我會想象GO不是必需的。

From Devx.com Tips

Although GO is not a T-SQL statement, it is often used in T-SQL code and unless you know what it is it can be a mystery. So what is its purpose? Well, it causes all statements from the beginning of the script or the last GO statement (whichever is closer) to be compiled into one execution plan and sent to the server independent of any other batches.