2009-05-26 5 views
2

私は次の操作を実行するためにDB2クエリーを書かれている:DB2 SQLと同じですか?

  • 一時テーブルから選択
  • 一時テーブルに挿入/モンスターのクエリから
  • 選択を一時テーブルを作成/古いテーブルから削除
  • 一時テーブルから選択/ 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 Studioで使用されているものです、私はライブにupatesを実行するために自分のアプリを持っていると離れて文を破るために、「GO」を使用します。

DB2はセミコロン(;)をサポートしていますか?これは、多くのSQL実装で標準的な区切り文字です。

+0

-

このリンクは、セミコロンはDB2のために働く必要があることを示唆しています。通常、デフォルトの区切り文字はセミコロンですが、ストアドプロシージャー本体などでは区切り文字は常にセミコロンですが、区切り文字はCREATE PROCUEDURE/whateverコマンドが他のものでなければなりません。この区切り文字は、DB2を呼び出す環境で上書きすることができます。伝統的に\\は "外側区切り文字"として使われますが、他の文字列を使うことができます。 –

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.

関連する問題