SQL SERVER錯誤:已超過了鎖請求超時時段。 (Microsoft SQL Server,錯誤: 1222)


本身的技術不是很高,很久又沒有認真去對待數據庫了,導致今天看到有關數據庫的問題的時候,各種束手無策,甚至都想辭職再去學習。總之,以后再完成工作之余,一定要去充充電,補充一下基礎知識。

今天的問題的來源在於,我在程序中寫了一個事務,但是卻沒有寫回滾代碼,然后問題就發生了。

在網上查找了各種資料,才知道是由於數據表被鎖,解鎖的方式就是停掉相關線程。那么又怎么查找相關進程。

第一步:找到該數據庫中使用的線程

select * from master..sysprocesses
where DB_NAME(dbid)='數據庫名稱'
and spid<>@@SPID
and dbid<>0
--and blocked>0
and open_tran>0

以上代碼沒有任何問題,如果使用,直接復制粘貼皆可。

下面對上面的代碼做一個簡單的解釋

DB_NAME是個函數,獲取根據對象獲取對象名稱,參數dbid直接寫上去就可以。

spid 是進程Id

下面的那些個參數並不知道意思

總之利用上面的查詢語句,可查處與數據庫相關的線程。然后停掉進程即可。

停掉進程:kill spid (上面查到的)

下面列一個問題分析參考網址:http://www.cnblogs.com/kerrycode/p/4502164.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM