SqlServer表死鎖的解決方法

2022-01-17 13:09:14 字數 728 閱讀 1263

前些天寫乙個儲存過程,儲存過程中使用了事務,後來我把一些**注釋掉來進行除錯找錯,突然發現一張表被鎖住了,原來是建立事務的**忘記注釋掉。本文表鎖住了的解決方法。 其實不光是上面描述的情況會鎖住表,還有很多種場景會使表放生死鎖,解鎖其實很簡單,下面用乙個示例來講解: 1 首先建立乙個測試用的表:

create table 

test

(

tid

int identity

(1,1)

)

2 執行下面的sql語句將此表鎖住:

select 

* from

test

with

(tablockx

)

3 通過下面的語句可以檢視當前庫中有哪些表是發生死鎖的:

select 

request_session_id spid

,object_name

(resource_associated_entity_id

)tablename

from

sys.

dm_tran_locks

where

resource_type

='object '

4 上面語句執行結果如下:

5 只需要使用kill關鍵字來殺掉被鎖的程序id就可以對錶進行解鎖:

kill 52

SqlServer表死鎖的解決方法

前些天寫乙個儲存過程,儲存過程中使用了事務,後來我把一些 注釋掉來進行除錯找錯,突然發現一張表被鎖住了,原來是建立事務的 忘記注釋掉。本文表鎖住了的解決方法。其實不光是上面描述的情況會鎖住表,還有很多種場景會使表放生死鎖,解鎖其實很簡單,下面用乙個示例來講解 1 首先建立乙個測試用的表 create...

SqlServer表死鎖的解決方法

前些天寫乙個儲存過程,儲存過程中使用了事務,後來我把一些 注釋掉來進行除錯找錯,突然發現一張表被鎖住了,原來是建立事務的 忘記注釋掉。本文表鎖住了的解決方法。其實不光是上面描述的情況會鎖住表,還有很多種場景會使表放生死鎖,解鎖其實很簡單,下面用乙個示例來講解 1 首先建立乙個測試用的表 create...

SqlServer表死鎖的解決方法

前些天寫乙個儲存過程,儲存過程中使用了事務,後來我把一些 注釋掉來進行除錯找錯,突然發現一張表被鎖住了,原來是建立事務的 忘記注釋掉。本文表鎖住了的解決方法。還有很多種場景會使表放生死鎖,解鎖其實很簡單,下面用乙個示例來講解 1 首先建立乙個測試用的表 create table test tid i...