DBCC INPUTBUFFER (52)
sp_lock

解决方案 »

  1.   

    根据进程的ID号@ID,执行exec sp_lock @ID
    获得锁信息:
    spid  SQL Server 进程 ID 号。 
    dbid  请求锁的数据库标识号。 
    ObjId  请求锁的对象的对象标识号。 
    IndId  索引标识号。 
    type  锁的类型: 
    DB: 数据库
    FIL: 文件
    IDX: 索引
    PG: 页
    KEY: 键
    TAB: 表
    EXT: 扩展盘区
    RID: 行标识符
     
    Resource  与 syslockinfo.restext 中的值对应的锁资源。 
    Mode    锁请求者的锁模式。该锁模式代表已授予模式、转换模式或等待模式。 
    Status int  锁的请求状态 
    GRANT
    WAIT
    CNVRT
     select object_name(ObjId)得到被锁的对象的对象名称
      

  2.   

    謝謝了是這樣的﹕
    DBCC INPUTBUFFER (52)
    EXEC sp_lock 52但是﹐殺掉了進程﹐為什么還是老鎖表啊?
    有的表 select * from 有問題的表 可以打開﹐
    可是﹐加了where 條件就打不開了﹐不知為什么啊?
    急啊?
    謝謝!
      

  3.   

    但是﹐殺掉了進程﹐為什么還是老鎖表啊?
    ------------------------------------------------------------
    产生了新的锁
    有的表 select * from 有問題的表 可以打開﹐
    可是﹐加了where 條件就打不開了﹐不知為什么啊?
    ------------------------------------------------------------
    select * from 有問題的表,返回的数据不包括排它锁锁定的记录
    当where条件指向排它锁锁定资源时,自然是要等待资源释放
      

  4.   

    这也没办法,重启后又会有的。微软的东西就这样,只好程序中多用(nolock)啰
      

  5.   

    执行exec sp_who查看锁信息
      

  6.   

    to  venket(好):
    可能是你杀了进程,但是没有释放锁,你可以释放锁,在看看
    ------------------------------------------------------------
    直接在查詢分析器中執行
    kill 進程id號
    還會再鎖表啊