UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

Sybaseで明示的なCommitにする 〜set chained〜

Sybaseで明示的なCommitにする

〜set chained〜


0.改訂履歴

  • 2002.08.29 新規作成

1.はじめに

 このドキュメントでは,暗黙のCommitと明示的なCommitについて説明する.

2.SybaseとOracleとSQL92

  • SQL92とOracleでは,明示的なCommitを要求する.
  • Sybaseは,暗黙のCommitとなる. たぶん,Microsoft SQL Serverも暗黙である.

3.暗黙のCommitを再現する

  • テスト用のテーブルを作成する.
1> create table ANMOKU ( AA char(5) )
2> go
1>
  • "iBook"というデータをINSERTしてみる.
1> insert into ANMOKU (AA) values("iBook")
2> go
(1 row affected)
1>
  • "PB-G4"というデータにアップデートしてみる.
1> update ANMOKU set AA = "PB-G4"      
2> go
(1 row affected)
1>
  • ロールバックしてみる.
1> rollback
2> go
1> 
  • rollbackしたので,更新前の状態に戻っていると考えられる.
  • では,データを確認する.
1> select * from ANMOKU
2> go
 AA    
 ----- 
 PB-G4 

(1 row affected)
1> 
  • データが更新されて,"PB-G4"になっている!

4.明示的Commitにする

  • chainedオプションを設定して,明示的なCommitを要求する設定とする.
1> set chained on
2> go
1>
  • データを"Duo"に変更してみる.
1> update ANMOKU set AA = "Duo"
2> go
(1 row affected)
1>
  • ロールバックする.
1> rollback
2> go
1>
  • データを確認する.
1> select * from ANMOKU
2> go
 AA    
 ----- 
 PB-G4 

(1 row affected)
1>
  • "PB-G4"のままだった.よかった.
  • 再度データを変更してみる.
1> update ANMOKU set AA = "Cube"
2> go
(1 row affected)
1>
  • コミットして,直ぐにロールバックしてみる.
1> commit
2> rollback
3> go
1>
  • データを確認する.
1> select * from ANMOKU
2> go
 AA    
 ----- 
 Cube  

(1 row affected)
1>
  • 今度は更新されました.


広告スペース
Google