|
■No51559 (ことぶき さん) に返信 > ■No51511 (はつね さん) に返信 >>■No51506 (ことぶき さん) に返信 > >>SELECT * FROM TABLE_A WITH(UPDLOCK,TABLOCK) > >>でテーブルロックしたTABLE_Aに対し、 > >> > >>UPDATE TABLE_A WITH(NOWAIT) SET RECORD_A = 'aaa' WHERE RECORD_B = 1 > >>の様に既にロックがかかっていたら即座にエラーを返して欲しいという意図で > >>NOWAITロックヒントを付けてUPDATE文を発行したところ、ロック待ちが発生しました。 >> >>WITH(UPDLOCK,ROWLOCK,NOWAIT) でもだめ?(未確認) >> > 遅くなりすみません。 > ご回答ありがとうございます。 > >>WITH(UPDLOCK,ROWLOCK,NOWAIT) でもだめ?(未確認) > SELECT * FROM TABLE_A WITH(UPDLOCK,TABLOCK,NOWAIT) > としましたが、変わらずロック待ちが発生しています。 > > と、ここまで書いて気がついたのですが、ROWLOCKと書かれていますね。 > ひょっとしてUPDATE文の方のロックヒントとしてWITH(UPDLOCK,ROWLOCK,NOWAIT)としてはどうか?ということでしたでしょうか? > てっきりSELECT文の方だと思っていましたので、明日改めて確認してみます。 >
遅くなりすみません。
UPDATE TABLE_A WITH(UPDLOCK,ROWLOCK,NOWAIT) SET RECORD_A = 'aaa' WHERE RECORD_B = 1 で確認してみたところ、変わらずロック待ちしてしまいました。
他の情報お持ちの方がいらっしゃいましたら引き続きお願いします。
|