Sqlserver 데이터베이스의 잠금 해제를 조회하는 저장 프로세스

6153 단어
sp 생성who_lock 저장 프로세스
? CREATE   procedure   sp_who_lock   as       begin           declare   @spid int           declare   @blk int           declare   @ count   int           declare   @ index   int           declare   @lock tinyint          set   @lock=0          create   table   #temp_who_lock        (         id int   identity(1,1),         spid int ,         blk int         )        if @@error<>0 return   @@error        insert   into   #temp_who_lock(spid,blk)        select   0 ,blocked         from   ( select   * from   master..sysprocesses where   blocked>0)a        where   not   exists( select   * from    master..sysprocesses where   a.blocked =spid and   blocked>0)        union   select   spid,blocked from    master..sysprocesses where   blocked>0        if @@error<>0 return   @@error        select   @ count = count (*),@ index =1 from   #temp_who_lock        if @@error<>0 return   @@error        if @ count =0        begin          select   ' '          return   0        end         while @ index <=@ count          begin          if exists( select   1 from   #temp_who_lock a where   id>@ index   and   exists( select   1 from   #temp_who_lock where   id<=@ index   and   a.blk=spid))         begin           set   @lock=1          select   @spid=spid,@blk=blk from   #temp_who_lock where   id=@ index           select   ' : ' + CAST (@spid AS   VARCHAR (10)) + ' , SQL '           select    @spid, @blk        dbcc inputbuffer(@spid)          dbcc inputbuffer(@blk)         end          set   @ index =@ index +1        end         if @lock=0         begin          set   @ index =1         while @ index <=@ count           begin           select   @spid=spid,@blk=blk from   #temp_who_lock where   id=@ index           if @spid=0           select   ' :' + cast (@blk as   varchar (10))+ ' , SQL '           else             select   ' SPID:' + CAST (@spid AS   VARCHAR (10))+ ' '   + ' SPID:' + CAST (@blk AS   VARCHAR (10)) + ' , SQL '           dbcc inputbuffer(@spid)        dbcc inputbuffer(@blk)          set   @ index =@ index +1         end         end         drop   table   #temp_who_lock        return   0      end            
 
  GO
질의 분석기에서 다음을 수행합니다.
exec sp_who_lock

좋은 웹페이지 즐겨찾기