(1)
成都創(chuàng)新互聯(lián)公司專注于南皮網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供南皮營銷型網(wǎng)站建設(shè),南皮網(wǎng)站制作、南皮網(wǎng)頁設(shè)計(jì)、南皮網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造南皮網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供南皮網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
HOLDLOCK:
在該表上保持共享鎖,直到整個(gè)事務(wù)結(jié)束,而不是在語句執(zhí)行完立即釋放所添加的鎖。
(2)
NOLOCK:不添加共享鎖和排它鎖,當(dāng)這個(gè)選項(xiàng)生效后,可能讀到未提交讀的數(shù)據(jù)或“臟數(shù)據(jù)”,這個(gè)選項(xiàng)僅僅應(yīng)用于SELECT語句。
(3)
PAGLOCK:指定添加頁鎖(否則通??赡芴砑颖礞i)。
(4)
READCOMMITTED用與運(yùn)行在提交讀隔離級別的事務(wù)相同的鎖語義執(zhí)行掃描。默認(rèn)情況下,SQL
Server
2000
在此隔離級別上操作。
(5)
READPAST:
跳過已經(jīng)加鎖的數(shù)據(jù)行,這個(gè)選項(xiàng)將使事務(wù)讀取數(shù)據(jù)時(shí)跳過那些已經(jīng)被其他事務(wù)鎖定的數(shù)據(jù)行,而不是阻塞直到其他事務(wù)釋放鎖,
READPAST僅僅應(yīng)用于READ
COMMITTED隔離性級別下事務(wù)操作中的SELECT語句操作。
(6)
READUNCOMMITTED:等同于NOLOCK。
(7)
REPEATABLEREAD:設(shè)置事務(wù)為可重復(fù)讀隔離性級別?!?/p>
(8)
ROWLOCK:使用行級鎖,而不使用粒度更粗的頁級鎖和表級鎖。
(9)
SERIALIZABLE:用與運(yùn)行在可串行讀隔離級別的事務(wù)相同的鎖語義執(zhí)行掃描。等同于
HOLDLOCK?!?/p>
(10)
TABLOCK:指定使用表級鎖,而不是使用行級或頁面級的鎖,SQL
Server在該語句執(zhí)行完后釋放這個(gè)鎖,而如果同時(shí)指定了HOLDLOCK,該鎖一直保持到這個(gè)事務(wù)結(jié)束。
(11)
TABLOCKX:指定在表上使用排它鎖,這個(gè)鎖可以阻止其他事務(wù)讀或更新這個(gè)表的數(shù)據(jù),直到這個(gè)語句或整個(gè)事務(wù)結(jié)束。
(12)
UPDLOCK
:指定在
讀表中數(shù)據(jù)時(shí)設(shè)置更新
鎖(update
lock)而不是設(shè)置共享鎖,該鎖一直保持到這個(gè)語句或整個(gè)事務(wù)結(jié)束,使用UPDLOCK的作用是允許用戶先讀取數(shù)據(jù)(而且不阻塞其他用戶讀數(shù)據(jù)),并且保證在后來再更新數(shù)據(jù)時(shí),這一段時(shí)間內(nèi)這些數(shù)據(jù)沒有被其他用戶修改。
這個(gè)和C# 沒有關(guān)系,是數(shù)據(jù)庫鎖層面的原因,你只要執(zhí)行的SQL 語句發(fā)出明確的帶鎖指令即可。
SQL Server 鎖類型(與粒度相對應(yīng))
1. HOLDLOCK: 在該表上保持共享鎖,直到整個(gè)事務(wù)結(jié)束,而不是在語句執(zhí)行完立即釋放所添加的鎖。
2. NOLOCK:不添加共享鎖和排它鎖,當(dāng)這個(gè)選項(xiàng)生效后,可能讀到未提交讀的數(shù)據(jù)或“臟數(shù)據(jù)”,這個(gè)選項(xiàng)僅僅應(yīng)用于SELECT語句。
3. PAGLOCK:指定添加頁鎖(否則通??赡芴砑颖礞i)?!?/p>
4. READCOMMITTED用與運(yùn)行在提交讀隔離級別的事務(wù)相同的鎖語義執(zhí)行掃描。默認(rèn)情況下,SQL Server 2000 在此隔離級別上操作。
5. READPAST: 跳過已經(jīng)加鎖的數(shù)據(jù)行,這個(gè)選項(xiàng)將使事務(wù)讀取數(shù)據(jù)時(shí)跳過那些已經(jīng)被其他事務(wù)鎖定的數(shù)據(jù)行,而不是阻塞直到其他事務(wù)釋放鎖,READPAST僅僅應(yīng)用于READ COMMITTED隔離性級別下事務(wù)操作中的SELECT語句操作。
6. READUNCOMMITTED:等同于NOLOCK。
7. REPEATABLEREAD:設(shè)置事務(wù)為可重復(fù)讀隔離性級別?!?/p>
8. ROWLOCK:使用行級鎖,而不使用粒度更粗的頁級鎖和表級鎖。
9. SERIALIZABLE:用與運(yùn)行在可串行讀隔離級別的事務(wù)相同的鎖語義執(zhí)行掃描。等同于 HOLDLOCK?!?/p>
10. TABLOCK:指定使用表級鎖,而不是使用行級或頁面級的鎖,SQL Server在該語句執(zhí)行完后釋放這個(gè)鎖,而如果同時(shí)指定了HOLDLOCK,該鎖一直保持到這個(gè)事務(wù)結(jié)束。
11. TABLOCKX:指定在表上使用排它鎖,這個(gè)鎖可以阻止其他事務(wù)讀或更新這個(gè)表的數(shù)據(jù),直到這個(gè)語句或整個(gè)事務(wù)結(jié)束?!?/p>
12. UPDLOCK :指定在讀表中數(shù)據(jù)時(shí)設(shè)置更新 鎖(update lock)而不是設(shè)置共享鎖,該鎖一直保持到這個(gè)語句或整個(gè)事務(wù)結(jié)束,使用UPDLOCK的作用是允許用戶先讀取數(shù)據(jù)(而且不阻塞其他用戶讀數(shù)據(jù)),并且保證在后來再更新數(shù)據(jù)時(shí),這一段時(shí)間內(nèi)這些數(shù)據(jù)沒有被其他用戶修改。
下面的示例 為
--鎖表(其它事務(wù)不能讀、更新、刪除)
SELECT * FROM 表名 WITH(TABLOCKX);
詳細(xì)步驟如下:
1、點(diǎn)擊【新建查詢】按鈕,打開SQL命令編輯框,對數(shù)據(jù)庫表的操作以及維護(hù)都可以通過編輯SQL命令實(shí)現(xiàn)。
2、在編輯框內(nèi)編輯創(chuàng)建數(shù)據(jù)庫表的代碼,確認(rèn)代碼無誤后,單擊【執(zhí)行】按鈕,創(chuàng)建數(shù)據(jù)表。
3、創(chuàng)建數(shù)據(jù)表的源代碼如下:
use test go
if exists(select name from sys.tables where name='Student')
drop table Student go
create table Student
(sname nchar(10) primary key,
sex nchar(2) not null,
bir datetime)
數(shù)據(jù)庫管理系統(tǒng),database management system,簡稱dbms,是一種操縱和管理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫。用戶通過dbms訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過dbms進(jìn)行數(shù)據(jù)庫的維護(hù)工作。它可使多個(gè)應(yīng)用程序和用戶用不同的方法在同時(shí)或不同時(shí)刻去建立,修改和詢問數(shù)據(jù)庫。
提供數(shù)據(jù)定義語言(ddl)。用它書寫的數(shù)據(jù)庫模式被翻譯為內(nèi)部表示。數(shù)據(jù)庫的邏輯結(jié)構(gòu)、完整性約束和物理儲,存結(jié)構(gòu)保存在內(nèi)部的數(shù)據(jù)字典中。數(shù)據(jù)庫的各種數(shù)據(jù)操作(如查找、修改、插入和刪除等)和數(shù)據(jù)庫的維護(hù)管理都是以數(shù)據(jù)庫模式為依據(jù)的。
您好:
SQL SERVER 通過鎖管理器自動發(fā)現(xiàn)和解決死鎖。在 SQL SERVER 中 Lock Monitor 管理線程(spid=4)每 5 秒鐘檢查一次系統(tǒng)中是否存在死鎖,同時(shí)也會使用死鎖發(fā)現(xiàn)計(jì)數(shù)器(Deadlock Detection Counter)控制檢查死鎖的頻率。
死鎖發(fā)現(xiàn)計(jì)數(shù)器初始值為 3,當(dāng)發(fā)現(xiàn)死鎖時(shí)被重新設(shè)置為 3,當(dāng)沒有發(fā)現(xiàn)死鎖時(shí)此值減 1。如果死鎖發(fā)現(xiàn)計(jì)數(shù)器大于 0,則在每次有進(jìn)程獲取鎖被阻止時(shí),鎖管理器都要求 Lock Monitor 線程檢查死鎖;而如果計(jì)數(shù)器等于 0,則在每次有進(jìn)程獲取鎖被阻止時(shí),鎖管理器不會要求 Lock Monitor 線程檢查死鎖,只是每 5 秒鐘檢查一次。
Lock Monitor 線程通過檢查鎖的等待列表發(fā)現(xiàn)保持鎖的進(jìn)程和等待鎖的進(jìn)程間的關(guān)系,從而發(fā)現(xiàn)死鎖。
查看被鎖表:select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT' spid 鎖表進(jìn)程 tableName 被鎖表名 解鎖: declare @spid int Set @spid = 57 --鎖表進(jìn)程declare @sql varchar(1000)set @sql='kill '+cast(@spid as varchar)exec(@sql)
分享名稱:sqlserver表解鎖,sql解鎖表語句
文章網(wǎng)址:http://jinyejixie.com/article32/dsecdsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)、微信小程序、電子商務(wù)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)