SQL Server中“加鎖選項”的功能說明
1 如何鎖一個表的某一行
A 連線中執行
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
begin tran
select * from tablename with (rowlock) where id=3
waitfor delay '00:00:05'
commit tran
B連線中如果執行
update tablename set colname='10' where id=3 --則要等待5秒
update tablename set colname='10' where id<>3 --可立即執行
2 鎖定資料庫的一個表
SELECT * FROM table WITH (HOLDLOCK)
注意: 鎖定資料庫的一個表的區別
SELECT * FROM table WITH (HOLDLOCK)
其他事務可以讀取表,但不能更新刪除
SELECT * FROM table WITH (TABLOCKX)
其他事務不能讀取表,更新和刪除
SELECT 語句中“加鎖選項”的功能說明
SQL Server提供了強大而完備的鎖機制來幫助實現資料庫系統的併發性和高效能。使用者既能使用SQL Server的預設設定也可以在select 語句中使用“加鎖選項”來實現預期的效果。 本文介紹了SELECT語句中的各項“加鎖選項”以及相應的功能說明。
功能說明:
NOLOCK(不加鎖)
此選項被選中時,SQL Server 在讀取或修改資料時不加任何鎖。 在這種情況下,使用者有可能讀取到未完成事務(Uncommited Transaction)或回滾(Roll Back)中的資料, 即所謂的“髒資料”。
HOLDLOCK(保持鎖)
此選項被選中時,SQL Server 會將此共享鎖保持至整個事務結束,而不會在途中釋放。
UPDLOCK(修改鎖)
此選項被選中時,SQL Server 在讀取資料時使用修改鎖來代替共享鎖,並將此鎖保持至整個事務或命令結束。使用此選項能夠保證多個程式能同時讀取資料但只有該程式能修改資料。
TABLOCK(表鎖)
此選項被選中時,SQL Server 將在整個表上置共享鎖直至該命令結束。 這個選項保證其他程式只能讀取而不能修改資料。
PAGLOCK(頁鎖)
此選項為預設選項, 當被選中時,SQL Server 使用共享頁鎖。
TABLOCKX(排它表鎖)
此選項被選中時,SQL Server 將在整個表上置排它鎖直至該命令或事務結束。這將防止其他程式讀取或修改表中的資料。
A 連線中執行
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
begin tran
select * from tablename with (rowlock) where id=3
waitfor delay '00:00:05'
commit tran
B連線中如果執行
update tablename set colname='10' where id=3 --則要等待5秒
update tablename set colname='10' where id<>3 --可立即執行
2 鎖定資料庫的一個表
SELECT * FROM table WITH (HOLDLOCK)
注意: 鎖定資料庫的一個表的區別
SELECT * FROM table WITH (HOLDLOCK)
其他事務可以讀取表,但不能更新刪除
SELECT * FROM table WITH (TABLOCKX)
其他事務不能讀取表,更新和刪除
SELECT 語句中“加鎖選項”的功能說明
SQL Server提供了強大而完備的鎖機制來幫助實現資料庫系統的併發性和高效能。使用者既能使用SQL Server的預設設定也可以在select 語句中使用“加鎖選項”來實現預期的效果。 本文介紹了SELECT語句中的各項“加鎖選項”以及相應的功能說明。
功能說明:
NOLOCK(不加鎖)
此選項被選中時,SQL Server 在讀取或修改資料時不加任何鎖。 在這種情況下,使用者有可能讀取到未完成事務(Uncommited Transaction)或回滾(Roll Back)中的資料, 即所謂的“髒資料”。
HOLDLOCK(保持鎖)
此選項被選中時,SQL Server 會將此共享鎖保持至整個事務結束,而不會在途中釋放。
UPDLOCK(修改鎖)
此選項被選中時,SQL Server 在讀取資料時使用修改鎖來代替共享鎖,並將此鎖保持至整個事務或命令結束。使用此選項能夠保證多個程式能同時讀取資料但只有該程式能修改資料。
TABLOCK(表鎖)
此選項被選中時,SQL Server 將在整個表上置共享鎖直至該命令結束。 這個選項保證其他程式只能讀取而不能修改資料。
PAGLOCK(頁鎖)
此選項為預設選項, 當被選中時,SQL Server 使用共享頁鎖。
TABLOCKX(排它表鎖)
此選項被選中時,SQL Server 將在整個表上置排它鎖直至該命令或事務結束。這將防止其他程式讀取或修改表中的資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-627815/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server有關鎖升級的誤區說明SQLServer
- GI安裝選項的說明
- 資料庫SQL Server 2016“功能選擇”詳細說明及精簡安裝選擇資料庫SQLServer
- 細說SQL Server中的加密SQLServer加密
- sql server系統表詳細說明SQLServer
- SQL Server中的事務與鎖SQLServer
- SQL Server 中的鎖定介紹SQLServer
- SQL Server查詢最佳化中的兩個選項SQLServer
- SQL SERVER 引數化選項SQLServer
- php.ini 核心配置選項說明PHP
- linux核心裁剪選項說明Linux
- Oracle Transparent Gateway for SQL Server安裝配置說明OracleGatewaySQLServer
- sql server系統表詳細說明(zt)SQLServer
- SQL Server中的鎖型別及用法SQLServer型別
- 【ORACLE】Oracle常用SQL及重點功能說明OracleSQL
- SQL Server 鎖SQLServer
- SQL Server中的鎖的簡單學習SQLServer
- SQL Server 的死鎖SQLServer
- SQL SERVER樂觀鎖定和悲觀鎖定使用例項SQLServer
- SQL Server死鎖SQLServer
- 加強堆結構說明
- lsof命令功能說明
- SQL SERVER 日期相關性優化選項SQLServer優化
- 關於NTP SERVER的配置說明Server
- Revit Server的注意要配置說明Server
- sql server關於跟蹤日誌查詢使用說明SQLServer
- Oracle邏輯備份與恢復選項說明Oracle
- Oracle 11g 預設審計選項 說明Oracle
- PHP中$_SERVER的常用引數與說明——收錄篇PHPServer
- 細說SQL SERVER中欄位型別SQLServer型別
- sql trace的使用說明一SQL
- SQL%ROWCOUNT的簡要說明SQL
- sql server死鎖的問題SQLServer
- 解決SQL Server 2005中鎖的問題SQLServer
- proxy_pass反向代理配置中url後面加不加/的說明
- Microsoft SQL Server 2005 中的國際功能ROSSQLServer
- Oracle Audit 功能的使用和說明Oracle
- Redis 叢集功能說明Redis