标签: sql
在我的多用户数据库中,多个并发事务中的语句可以更新表中的相同数据。我必须限制数据访问,直到一笔交易完成
我听说过数据并发性和一致性,但听不懂
答案 0 :(得分:0)
有两种选择。
1)使用TABLOCKX锁定整个表:
如果您正在交易中,并且在表上获得排他锁,例如:
SELECT 1 FROM TABLE WITH (TABLOCKX)
没有其他进程能够获取表上的任何锁,这意味着所有试图与表进行对话的查询都将被阻塞,直到事务提交为止。
2)使用手动应用程序锁定:
sp_getapplock (Transact-SQL) | Microsoft Docs[^]
sp_releaseapplock (Transact-SQL) | Microsoft Docs[^]