sql - 如何在sql server中几秒钟后自动停止查询?
问题描述
我有这个程序。该过程在调用另一个过程。如果需要超过几秒钟,我需要停止内部程序,但我不能使用停止按钮,因为它在另一个程序中
CREATE procedure [dbo].[proc_1]
as
begin
declare @id output
exec proc_2 @id
if no return for 5 seconds
stop proc_2 automatically
exec proc_3 @id
end
知道可以说 proc_2 正在尝试更新锁定的编辑表并因此延迟。我想在为主程序分配所有时间之前停止它并执行 proc_3 但是我应该写什么:如果没有返回 5 秒停止程序?
解决方案
如果 proc_2 卡在 try and catch 中,我将 lock_timeout 设置为返回。proc_3 的 exec 在 catch
CREATE procedure [dbo].[proc_1]
as
begin
declare @id output
begin try
begin transaction
set lock_timeout 1000
exec proc_2 @id
commit transaction
end try
begin catch
exec proc_3 id
end catch
end
推荐阅读
- caddy - 基于用户代理的球童重写不起作用
- excel - 使用 VLOOKUP 提取百分比以在另一个表中使用
- structr - 在我的 Structr 应用程序中安装 Neo4J 的 APOC
- service-worker - 使用工作箱实现离线回退的正确方法是什么
- three.js - 在特定的枢轴点旋转
- wordpress - 用于特定类别提要的 Wordpress 自定义模板
- c++ - 类方法调用变量方法
- javascript - 递归地从对象创建一个 url 数组 - javascript
- python - 将 weka 包安装到 python3 的问题
- ios - UIView draw(_ rect: CGRect) 不适用于多线程