调用一个sp的时候,怎样能设置其超时时间,以免主程序等待时间过长?

flysheep412 2003-10-21 12:59:12
在一个存储过程A中调用另一存储过程B,如果B的运行时间过长,能否设定一个超时时间长度,使得当B达到超时时间时就中断运行,继续运行A中的剩余语句。

请教!!!
...全文
106 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
flysheep412 2003-10-24
  • 打赏
  • 举报
回复
各位帮个忙,给个话,我好结贴啊!
顶。。。。。。
flysheep412 2003-10-22
  • 打赏
  • 举报
回复
期待回答中....
flysheep412 2003-10-21
  • 打赏
  • 举报
回复
我查过lock_timeout,根据help上的说法,它是用来控制锁的时间的,可我不需要使用什么锁,这样还能使用这个变量嘛?

我用下面这个做过测试:
create proc A
as
exec B
select * from table_1

create proc B
as
master..xpcmdshell 'net send xxx.xxx.xxx.xxx hello'

执行:
exec A
---------------------------------
当xxx.xxx.xxx.xxx是一个不存在的IP时,net send要延迟很长时间(将近30秒)才能继续运行,现在希望能设置一个超时时间,当B运行超过该时间时就中止运行。

加入set lock_timeout 2000后没有效果,online help中也没有看到什么具体的用法,
再次请教!

txlicenhe 2003-10-21
  • 打赏
  • 举报
回复
楼主一试便知啊。
qdubit 2003-10-21
  • 打赏
  • 举报
回复
同意二楼的说法
pengdali 2003-10-21
  • 打赏
  • 举报
回复
不是写出来了,具体用法联机帮助上有,还要什么?
aierong 2003-10-21
  • 打赏
  • 举报
回复
SET LOCK_TIMEOUT
指定语句等待锁释放的毫秒数。

语法
SET LOCK_TIMEOUT timeout_period

参数
timeout_period

是在 Microsoft® SQL Server™ 返回锁定错误前经过的毫秒数。值为 -1(默认值)时表示没有超时期限(即无限期等待)。

当锁等待超过超时值时,将返回错误。值为 0 时表示根本不等待,并且一遇到锁就返回信息。

注释
在连接开始时,该设置的值为 -1。设置更改后,新设置在其余的连接时间里一直有效。

SET LOCK_TIMEOUT 的设置是在执行或运行时设置,而不是在分析时设置。

READPAST 锁定提示为该 SET 选项提供了另一种方式。

权限
SET LOCK_TIMEOUT 权限默认授予所有用户。

示例
下例将锁超时期限设置为 1,800 毫秒。

SET LOCK_TIMEOUT 1800
GO

flysheep412 2003-10-21
  • 打赏
  • 举报
回复
为什么没人理?
我顶。。顶。。。顶。。。。
flysheep412 2003-10-21
  • 打赏
  • 举报
回复
是否为:
create proc A
as
//do something
...

set lock_teimout 3000
exec B

//continue to do something
...

就可以了呢?
pengdali 2003-10-21
  • 打赏
  • 举报
回复

----超过了3秒将会自动强制停止.

SET LOCK_TIMEOUT 3000

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧