MSSQLのロックテーブル、クエリ、テーブルがロックされ、関連する文は、テーブルをロックされていたロックを解除

MSSQL(SQL Serverが)私の心のロック・テーブルで簡単ですが、大体の理由は、あなたがDML文が1つのウィンドウで提出されていない実行することで、その後、テーブルをロックするためにつながる同じテーブル、上のウィンドウのCRUD操作を開設。ロックテーブルは、データの一貫性を維持するための尺度です。

ここでは、テーブル、クエリ、テーブルがロックされているが、関連した声明のロックを解除するロックされているテーブルをロックされていました。

- 他のトランザクションが読むことはできません、更新、削除)のテーブルをロックし
、BEGIN  TRAN 
SELECT  *  FROM  <テーブル>  WITH ;(TABLOCKX)
 WAITFOR遅延午前0時○○分20秒
COMMIT  TRAN 

- ロックテーブルを(他のトランザクションのみを読み取ることができ、 )、削除、更新することはできません
BEGIN  TRAN 
SELECT  *  FROM  <テーブル名>  WITHHOLDLOCK ;)
 WAITFOR遅延夜十二時00分20秒
COMMIT  TRANを

- ラインのラッチ部分を
、BEGIN  TRANを
SELECT  *  FROM  <テーブル名> WITH(XLOCK)ID IN' 81A2EDF9-D1FD-4037-A17B-1369FD3B169B ' );
 WAITFOR遅延' 夜12時01分20秒' COMMIT TRANを- 参照テーブルがロックされているSELECTがロックテーブル処理をrequest_session_id、OBJECT_NAME (resource_associated_entity_id)でありますテーブル名をロック  
 から sys.dm_tran_locks WHERE RESOURCE_TYPE = OBJECT ; - ロックを解除DECLAREを@spid int型セット@spid = 66 - ロックテーブルプロセス
 





   
     
宣言 @sql  VARCHAR1000 に設定 @sql = ' 殺す' + キャスト@spid として VARCHARをのexec@sqlを

 

「私は、露光されたスポットでカバーされている場合、それはすぐに振り向いすることができます。」

おすすめ

転載: www.cnblogs.com/yanggb/p/10944350.html