本身的技術不是很高,很久又沒有認真去對待數據庫了,導致今天看到有關數據庫的問題的時候,各種束手無策,甚至都想辭職再去學習。總之,以后再完成工作之余,一定要去充充電,補充一下基礎知識。
今天的問題的來源在於,我在程序中寫了一個事務,但是卻沒有寫回滾代碼,然后問題就發生了。
在網上查找了各種資料,才知道是由於數據表被鎖,解鎖的方式就是停掉相關線程。那么又怎么查找相關進程。
第一步:找到該數據庫中使用的線程
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
