一尘不染

如何检查表是否在SQL Server中被锁定

sql

我在SQL
Server上运行时有一个较大的报告。运行需要几分钟。我不希望用户单击两次运行。由于我将整个过程包装在事务中,因此如何检查表是否被事务锁定?如果是这样,我想返回一条错误消息,内容为“正在生成报告,请在几分钟后重试”。

如何做到这一点?


阅读 156

收藏
2021-03-17

共1个答案

一尘不染

更好的是,考虑sp_getapplock为此目的而设计。或使用SET LOCK_TIMEOUT

否则,您将不得不做一些sys.dm_tran_locks我仅用于DBA的事情:而不是用于用户定义的并发性。

2021-03-17