linq T-SQL:手动锁定表几分钟[重复]

2vuwiymt  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(141)
    • 此问题在此处已有答案**:

Forcing a query timeout in SQL Server(4个答案)
八年前就关门了。
我知道这会很奇怪,但是我想在MVC应用程序中触发一个错误,这个错误将基于LINQ查询,我想从表中获取一条记录。此记录将被阻止(数据库/表/行)级别使用T-SQL命令(例如,一个无限循环总是更新这一条记录),那么我的LINQ Query将执行一个查询来读取该记录。当LINQ尝试时,结果应该是20 - 30秒后超时,以前有人尝试过吗?

xxb16uws

xxb16uws1#

如果我没理解错您的问题,您似乎想强制表锁以进行测试。若要使用SQL Server执行此操作,您可以创建并运行一个存储过程,该过程将在感兴趣的表上导致独占表锁。当该锁处于活动状态时,您可以运行要测试的程序。
下面的存储过程应将您的表锁定2分钟。您可以根据需要更改延迟参数。

BEGIN TRAN  
SELECT TOP (1) 1 FROM TABLE WITH (TABLOCKX)
WAITFOR DELAY '00:02:00' 
ROLLBACK TRAN   
GO

在下面的stackoverflow帖子中描述了一种通用的方法,MSDN链接提供了一些关于WAITFOR语句的附加信息。
Original stackoverflow post
Supplementary MSDN post

相关问题