Mr.Tの場所

特攻野郎Aチームじゃないよー

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  181  : 記事  0  : コメント  760  : トラックバック  37

ニュース

  • 性別:男
  • 猫1:まる
  • 猫2:もろ
  • 猫3:にゃん左部郎
  • タバコ:男は黙ってJPS
[わんくま同盟] C#, VB.NET 掲示板
フィードメーター - Mr.Tの場所

書庫

日記カテゴリ

 Mr.Tです、こんにちは。

今回は、すごく当たり前といえば、当たり前のことだけどという点について。

SQLServerは、データベースに対して直接クエリの発行ができます。SQLServer2005なら、Management Studio上
でできるし、SQLServer2000ならクエリアナライザで行えますね。

#コマンドラインでもできるんだっけ>osql

 

データベースといえばトランザクションを利用するのは当たり前。詳しい動作はいろんな説明が世の中にあって、
色々と調べられます。

だけど、初歩の初歩的な、「ほんとーにトランザクションかけて、ロールバックやコミットの効果を実感した?」

仕組みは説明できるよね、で、コーディングルールもあるし、先輩/上司も教えてくれるから、トランザクションは
問題ないっすよねー。
でも、実際にロールバックで戻ってくれてるところは、みたことねーよな。エラーでロールバック処理は書いてるけどさ。

なんて人いません?

#実は暗黙的に、んなのロールバックのテストなんかしねーよ、といってるわけですが。

 

いや、待て。それじゃあ、つまんねーだろ。ということで、ちょー簡単実践。

一番わかりやすくて感動なのは、ロールバック処理で、それまでの更新が元に戻ってるヨ!というやつでしょう。

 

(SQLServer2005のManagement Studio Expressで確認してますが、2000でも同じです。)

 

まずは、ツールバーから、「新しいクエリ」でウィンドウを開きます。

Selectで確認。

20071012

 

はい、ではそのまま、Select文の上に、トランザクション宣言とDelete文を追加します。

で、ばっさり消して、再度確認したところ。

 

20071012_002

 

 

 消えてますね。ちゃんと消えてます。ここで、注意!

このクエリのウィンドウ、×ボタンで閉じちゃだめです!

で、そのまま、Begin TranとDeleteを消して、 Rollbackを記述しましょう。

 

20071012_003

 簡単に確認できるんですねぇ。

もどったでしょ? Rollbackの代わりに、Commit Tranとすれば、きちんとコミットされるんですね。

 

これの応用というか、消されちゃった間でコミットやロールバックされるまでに、他の人がSelectしたらどーなんの?とかの確認や、
いきなり×ボタンでウィンドウおとしちゃったらどうなるの?とか、色々実感できて遊べるじゃないんでしょうか。

投稿日時 : 2007年10月12日 7:11

コメント

# re: ちょー基本で簡単に、SQLServerでトランザクションの効果を確認する 2007/10/12 7:56 さかもと
さかもとどす。

こうして視覚的にみるととてもわかりやすいですよねー。
今度他の社員から質問が来たらこちらを紹介・・・。


# re: ちょー基本で簡単に、SQLServerでトランザクションの効果を確認する 2007/10/12 12:08 Mr.T
内容としては全然うすいんですが、
トランザクションのロールバックを実際、目にする
のは少ないんじゃないかと思ってます。

通常処理の流れじゃロールバックさせること
はないと思うんです。>え、あるんか?
どうしたってエラー処理なんかの中でやるので、
じゃあ、ロールバックってやってみた?とか
思った次第で。



# ちょー基本で簡単に、SQLServerでトランザクションの効果を確認する2 2007/10/14 2:42 Mr.Tの場所
ちょー基本で簡単に、SQLServerでトランザクションの効果を確認する2

# ちょー基本で簡単に、SQLServerでトランザクションの効果を確認する3 2007/10/26 12:15 Mr.Tの場所
ちょー基本で簡単に、SQLServerでトランザクションの効果を確認する3

Post Feedback

タイトル
名前
Url:
コメント