SqlServer表死鎖的解決方法

2022-01-12 14:15:59 字數 690 閱讀 1885

前些天寫乙個儲存過程,儲存過程中使用了事務,後來我把一些**注釋掉來進行除錯找錯,突然發現一張表被鎖住了,原來是建立事務的**忘記注釋掉。本文表鎖住了的解決方法。

還有很多種場景會使表放生死鎖,解鎖其實很簡單,下面用乙個示例來講解:

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 上面語句執行結果如下:

spid :被鎖程序id。

tablename:發生死鎖的表名。

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

SqlServer表死鎖的解決方法

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

SqlServer表死鎖的解決方法

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

SqlServer表死鎖的解決方法

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