you can try use stop mssqlserver service and then start.

解决方案 »

  1.   

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

  2.   

    LOCK_TIMEOUT 设置允许应用程序设置语句等待阻塞资源的最长时间。当语句等待的时间大于 LOCK_TIMEOUT 设置时,系统将自动取消阻塞的语句,并给应用程序返回"已超过了锁请求超时时段"的 1222 号错误信息。但是,SQL Server 不回滚或取消任何包含该语句的事务。因此,应用程序必须有捕获 1222 号错误信息的错误处理程序。如果应用程序没有捕获错误,则会继续运行,并未意识到事务中的个别语句已取消,从而当事务中的后续语句可能依赖于那条从未执行的语句时,导致应用程序出错。执行捕获错误信息 1222 的错误处理程序使应用程序得以处理发生超时的情况,并采取补救操作,例如可以自动重新提交阻塞的语句或者回滚整个事务。若要确定当前 LOCK_TIMEOUT 设置,请执行 @@LOCK_TIMEOUT 函数,例如:DECLARE @Timeout int
    SELECT @Timeout = @@lock_timeout
    SELECT @Timeout
      

  3.   

    对不起各位,没有说清楚,我是通过程序调用检索存储过程的,在程序上做了一个“中止”按钮,希望通过代码中止一个正在执行'select'的进程(数据量大概几千万条,所以希望能有中止功能)。
      

  4.   

    Try  http://expert.csdn.net/Expert/topic/1413/1413968.xml?temp=.2403986
      

  5.   

    Select t2.Id,t2.Name ,t1.rsc_objid,Convert(Int,t1.req_spid) as req_spid
    from   master.dbo.syslockinfo t1(nolock),
           YuorDataBaseName.dbo.sysobjects t2(nolock)
    Where t1.rsc_objid =* t2.Id  and t2.name in(你查詢的tableName)kill req_spid(上面查詢出的進程號)
      

  6.   

    你可以从系统进程表 sysprocess 中找出要Kill的进程:declare @spid int
    declare Cu_A Cursor For select SpID from sysprocess 
    Fetch Cu_A into @spid
    while @@FETCH_Stause=0
    begin
      Kill @spid
      Fetch Cu_A into @spid
    end
    close CU_A
    deallocate Cu_A   
      

  7.   

    To cop007 (框吉) :
       对于一个正在执行的存储过程(例如:我插入1000万条纪录),我想通过程序中止,目前我只能Kill掉,可以
    use masterdeclare  @spid  varchar(100)select @spid=spid from sysprocesses
    where status='runnable' order by spid exec('kill  '+@spid)试验是成功的,别的办法我不知道,帮你Up
      

  8.   

    谢谢各位高手,但我的问题是不通过'KILL'.