是否可以在 SQL SERVER 中的事务中使用 SELECT 语句锁定行?我想锁定该行,因此来自外部的其他事务无法到达该行。
事务提交或回滚后,应释放该行。这就是我的意思...
BEGIN TRANSACTION TRAN1
SELECT * FROM HR.Employees WITH (UPDLOCK) WHERE empid=1
...
...
...
...
COMMIT TRANSACTION
有人有建议吗?我应该执行 UPDATE 语句来锁定行吗?
请不要将此问题标记为重复。因为,我不是在询问 UPDATE 语句,而是在询问 SELECT
编辑:我尝试“设置事务隔离级别可序列化”,但这锁定了太多东西。我的 SP 很大,它有很多 SELECT 语句。'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE' 锁定 SP 中所有 SELECT 的行。但是,我想只锁定一张表中的行。