Date: Mon, 5 Feb 2001 09:51:47 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、おはようございます
-----Original Message-----
From: hiro [mailto:who@example.ne.jp]
Sent: Monday, February 05, 2001 1:11 AM
To: who@example.ne.jp
Subject: [ml-msde:00428] Re: ストアードプロシジャと T-SQL
>こんばんわ。
>T−SQLでストアードプロシージャを生成できるのはわかります。
>以前、同一ストアードを複数ユーザーに同タイミングで実行させないために、
>SERIALIZABLE(直列化)のアドバイスしていただいたのですが、
>あれは、T-SQLの世界の中での機能ではないかなと思っています。
そうです
正確にはトランザクションモードはデータベースサーバーの機能であり、
クライアントからのデータベース操作命令は、現在設定されている
トランザクションモードの動作に応じて処理されます
トランザクションモードは、クライアントの接続毎にそのモードが定義
できます
直列化の指示は、明示的に行わないといけません
デフォルトは、コミット済み読み取りレベルです
>ストアードを生成するとき直列化できるのはわかるのですが、生成したストアード
を
>実行するときに直列化できるのか?わかりません。
できません
必ず明示的に、直列化へ移行する命令を発行してください。
>VBのコマンドボタンからT−SQLで記述されたプログラムをOSQLで実行す
る
>のですか?
>よろしくお願いします。
直列化へ移行する命令は、
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
です。
この命令をクライアントから投げるか、この命令を実行するためのストアド
プロシージャをサーバー側に用意し、それを実行してください。
クライアントから投げる場合は、ADOのSQL文の実行方法と同じです。
ただ一般的には、直列化状態の期間を短くする必要があるので排他制御
を行う直前に入れるのが理想です。
VBのコマンドボタンで設定するのは良くありません。
ストアドプロシージャの実行を排他制御したければ、最初の命令を直列化
指示にして、ストアドプロシージャを抜ける前にそれを解除してください
もちろん、ダミーのテーブルを用意してください。
>それと、「黄色い本」と乱暴な言動をしたことを深くお詫びいたします。
いいえ、そのように呼んでくれて嬉しく思いました
これから私も『黄色い本』と呼びます
---------------------------------------------------
(株)日本技術ソフト開発 堀川 明
mailto:who@example.ne.jp
mailto:who@sub.example.jp
http://www.horikawa.ne.jp/msde/
http://www.kt.rim.or.jp/~pwp/
02月05日(月曜日) 09時49分記
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|