MSSQL(SQL Serverが)私の心のロック・テーブルで簡単ですが、大体の理由は、あなたがDML文が1つのウィンドウで提出されていない実行することで、その後、テーブルをロックするためにつながる同じテーブル、上のウィンドウのCRUD操作を開設。ロックテーブルは、データの一貫性を維持するための尺度です。
ここでは、テーブル、クエリ、テーブルがロックされているが、関連した声明のロックを解除するロックされているテーブルをロックされていました。
- (他のトランザクションが読むことはできません、更新、削除)のテーブルをロックし 、BEGIN TRAN SELECT * FROM <テーブル> WITH ;(TABLOCKX) WAITFOR遅延「午前0時○○分20秒」 COMMIT TRAN - ロックテーブルを(他のトランザクションのみを読み取ることができ、 )、削除、更新することはできません BEGIN TRAN SELECT * FROM <テーブル名> WITH(HOLDLOCK ;) 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 VARCHAR(1000 ) に設定 @sql = ' 殺す' + キャスト(@spid として VARCHARを) のexec(@sqlを)
「私は、露光されたスポットでカバーされている場合、それはすぐに振り向いすることができます。」