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

解决方案 »

  1.   

    set LOCK_TIMEOUT 1800 
    select @@lock_timeoutselect * from bmda 
    begin tran
    insert bmda ( bmzj , bmbh,bmmc,bmxz) 
    values ( 1,'dd','ds',0) 
    1。8秒之后, 它并没有执行回滚
      

  2.   

    SqlServer2000好像不行,2005不知道是否可以!
    Oracle是可以的,提供对一个会话所使用资源的限制(内存大小,cpu时间等等)
      

  3.   

    LOCK_TIMEOUT是自定义锁超时,和要解决的问题没有太大关系!
      

  4.   

    SET LOCK_TIMEOUT 允许应用程序设置语句等待阻塞资源的最长时间。当一条语句已等待超过 LOCK_TIMEOUT所设置的时间,则被锁住的语句将自动取消,并给应用程序返回一条错误信息