我想在存儲過程執行時鎖定表格。如何在操作過程中鎖定表格
這是一個好方法嗎?
CREATE PROCEDUE sp_test
@tableName nvarchar(128)
AS
DECLARE @sql nvarchar(MAX) = 'SELECT * FROM ' + @tableName + 'WITH TABLOCK'
EXEC @sql
-- DO my operations
-- How Do I release the lock? or does it get release when the execution is done
或者是否有更好的方法來實現這一點。
感謝
我並不是說你不需要這個,但是如果這個過程頻繁發生,我會期待嚴重的鎖爭用。你能否提供詳細說明你爲什麼需要它? – 2010-07-22 21:38:31
最不可能經常打一次。我們有一個存儲過程,可以爲特定的表啓用更改跟蹤。當這個過程是調用時,我們想要鎖定表,以便沒有人可以在表上執行DML操作。一旦程序完成,我們想釋放鎖。該過程不需要很長時間就可以執行。爲X鎖, – pdiddy 2010-07-23 13:10:16