4
我需要在表中鎖定一行,以便在運行過程時無人能夠讀取此行。我在此過程中使用BEGIN TRAN
。所以,我試圖阻止的這個記錄在這個過程中沒有提交。 這可能嗎?在表中鎖定一行SQL Server
我需要在表中鎖定一行,以便在運行過程時無人能夠讀取此行。我在此過程中使用BEGIN TRAN
。所以,我試圖阻止的這個記錄在這個過程中沒有提交。 這可能嗎?在表中鎖定一行SQL Server
根據什麼是您的存儲過程的目的:
- 如果它修改提及行,你可以基於transaction levels
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
--UPDATE/INSERT/DELETE你的行在這裏
...
COMMIT TRANSACTION SET事務隔離級別重複讀
- 使用lock hints
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
SELECT列1,列2
FROM yourTable WITH(ROWLOCK)
WHERE ID = YourRecordId
...
COMMIT TRANSACTION
SET TRANSACTION ISOLATION LEVEL可重複閱讀
可能的重複問題:http://stackoverflow.com/questions/111652/locking-row-in-sql-2005-2008 – granadaCoder