zoukankan      html  css  js  c++  java
  • SqlServer查看死锁的存储过程

    IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[sp_who_lock]'AND OBJECTPROPERTY(id, N'IsProcedure'= 1)
    DROP PROCEDURE [dbo].[sp_who_lock]
    GO
     
    USE master
    GO
    CREATE PROCEDURE sp_who_lock
    AS
    BEGIN
    DECLARE @spid INT,@bl INT,
            @intTransactionCountOnEntry INT,
            @intRowcount INT,
            @intCountProperties INT,
            @intCounter INT
     
            CREATE TABLE #tmp_lock_who (
             id INT IDENTITY(1,1),
             spid SMALLINT,
             bl SMALLINT)
     
            IF @@ERROR<>0 RETURN @@ERROR
     
            INSERT INTO #tmp_lock_who(spid,bl) SELECT 0 ,blocked
              FROM (SELECT * FROM sysprocesses WHERE blocked>0 ) a
              WHERE NOT EXISTS(SELECT * FROM (SELECT * FROM sysprocesses WHERE blocked>0 ) b
              WHERE a.blocked=spid)
              UNION SELECT spid,blocked FROM sysprocesses WHERE blocked>0
     
            IF @@ERROR<>0 RETURN @@ERROR
     
    -- 找到临时表的记录数
            SELECT @intCountProperties = COUNT(*),@intCounter = 1
            FROM #tmp_lock_who
     
            IF @@ERROR<>0 RETURN @@ERROR
     
            IF @intCountProperties=0
                SELECT '现在没有阻塞和死锁信息' AS message
     
    -- 循环开始
    while @intCounter <= @intCountProperties
    BEGIN
    --取第一条记录
            SELECT @spid = spid,@bl = bl
            FROM #tmp_lock_who WHERE Id = @intCounter
            BEGIN
                IF @spid =0
                    SELECT '引起数据库死锁的是: '+ CAST(@bl AS VARCHAR(10)) + '进程号,其执行的SQL语法如下'
                ELSE
                    SELECT '进程号SPID:'+ CAST(@spid AS VARCHAR(10))+ '' + '进程号SPID:'+ CAST(@bl AS VARCHAR(10)) +'阻塞,其当前进程执行的SQL语法如下'
                DBCC INPUTBUFFER (@bl )
                END
     
    --循环指针下移
            SET @intCounter = @intCounter + 1
    END
     
    DROP TABLE #tmp_lock_who
     
    RETURN 0
    END

    exec master.dbo.sp_who_lock
  • 相关阅读:
    第一次个人项目【词频统计】——PSP表格
    第一次个人项目【词频统计】——需求分析,代码规范,设计思路
    第一次个人项目【词频统计】——测试样例分析&性能分析
    PHP5 构造函数
    简单的NT框架
    今天开始学内核
    人生感悟
    (十四)网络层OSPF协议
    (十三)网络层RIP协议报文格式
    (十一)网络层ICMP
  • 原文地址:https://www.cnblogs.com/51net/p/2965449.html
Copyright © 2011-2022 走看看