Sybaseで明示的なCommitにする 〜set chained〜
Sybaseで明示的なCommitにする
〜set chained〜
0.改訂履歴
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>
|
- rollbackしたので,更新前の状態に戻っていると考えられる.
- では,データを確認する.
1> select * from ANMOKU
2> go
AA
-----
PB-G4
(1 row affected)
1>
|
4.明示的Commitにする
- chainedオプションを設定して,明示的なCommitを要求する設定とする.
1> set chained on
2> go
1>
|
1> update ANMOKU set AA = "Duo"
2> go
(1 row affected)
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>
|