2009-04-30 28 views
3

DB2の次のSQL Server文に相当するものは何ですか?DB2のSQL Serverトランザクションと同等のものは何ですか?

  • トランザクションをコミット
  • ロールバックトランザクションのトランザクションを開始します
+0

おそらく、LUW上のDB2またはz/OSまたはiSeries上のDB2を意図しているかどうかという疑問を明らかにする必要があります。これに遭遇する人々を助けるかもしれません。 –

答えて

5

例えばhereを参照してください。しかし、基本的に

BEGIN TRANSACTION 
COMMIT TRANSACTION 
ROLLBACK 
14

実際に答えはここに示されているより少し複雑です。実際、トランザクションはANSI標準化されており、DB2 をサポートしている可能性があります。

DB2 for z/OSは、他のバリアント(LUW、Linux-Unix-Windows、最も一般的です)とは非常に異なる獣です。暴動に陥る危険性があるため、これはDB2のことをほとんど無意味なものにする考えをします。あなたは、IBMのデータベースの特定の変種について話していますが、1つで機能するものは別のものでは完全に無効になる可能性があります。私は、BEGIN TRANSACTION答えが受け入れられたので、OPが使用していたどんな味がz/OSのものではないと仮定します。

DB2 z/OSとトランザクションを使用しようとしている人は、ここをクリックしてください。メインフレーム用のDB2には明示的なトランザクションがありません。 BEGIN TRANSACTIONまたは他の同等の構成要素はありません。トランザクションは暗黙的に開始され(通常はドキュメントの作業単位と呼ばれます)、明示的にコミットまたはロールバックされます(通常、Toadのような多くのGUIツールは、あなたに一時的に潜入する自動コミット機能を備えています)。 9.1のz/OS SQLリファレンスマニュアル(28ページ; http://www-01.ibm.com/support/docview.wss?uid=swg27011656#manualsで入手可能)から

「アプリケーション・プロセスが開始されたときに、作業単位が開始される作業 の単位も開始されたとき。以前の作業単位は、 以外のアプリケーション処理の終了によって終了します。作業単位は、コミット操作、 フル・ロールバック操作、またはアプリケーション・プロセスの終了によって終了します。それが終了する作業単位内で行われたデータベース変更だけです。

スクリプトの作成時に最も近いのは、手動でセーブポイントを指定することです。

これらは次のようになります。表面的に

SAVEPOINT A ON ROLLBACK RETAIN CURSORS; 

UPDATE MYTABLE SET MYCOL = 'VAL' WHERE 1; 

ROLLBACK WORK TO SAVEPOINT A; 

、これらは明示的なトランザクション似ていますが、そうではありません。代わりに、実際には、単一の暗黙的なトランザクション内の時点の時点にすぎません。多くの目的のためには十分かもしれませんが、概念上の違いを認識することが重要です。

+0

iSeries(AS/400)プラットフォームでDB2を扱う際に同様の問題はありますか? (これらのシステムの場合は、新鮮なものに限定されています) –

+0

iSeriesの風味にはあまり慣れていませんが、答えは「はい」だと思います。バージョン5のマニュアル([http://www-01.ibm.com/support/docview.wss?uid=swg27008735](http://www-01.ibm.com/support/docview.wss?uid=swg27008735 );私が最も速く見つけることができたもの)は、23ページの上で引用したのと同じ言い回しを持っています。 – Michael

+3

これは正解とマークする必要があります。 –

関連する問題