我有一个大的报告我正在运行在sql server上.运行需要几分钟.我不希望用户点击运行两次.由于我将整个过程包装在一个事务中,如何查看表是否被事务锁定?如果是这样,我想返回一个错误消息,说“生成报告,请在几分钟后重试”.
这怎么可以实现?
解决方法
更好的是,考虑为此设计的
sp_getapplock
.或使用
SET LOCK_TIMEOUT
否则,你必须用sys.dm_tran_locks
做一些事情,我只用于DBA的东西:不是用于用户定义的并发.