现需要维护一大堆存储过程,想在相关的存储过程中找出给定的一个个关键字出现的个数。自己无暇去研究了。

解决方案 »

  1.   

    exec sp_helptext '存储过程名称'
    获取存储过程的细节,来计算关键字出现的次数。
      

  2.   


    Create ProceDure SP_TEST
    As
    Select 1 As A
    Union All
    Select 2
    Union All
    Select 3
    GO
    Create Table #T(SPText Nvarchar(4000))
    Insert #T EXEC sp_helptext SP_TEST
    Select SUM(Len(SPText)-Len(Replace(SPText,'Select','')))/Len('Select') As Count From #T
    Drop Table #T
    GO
    Drop ProceDure SP_TEST
    --Result
    /*
    Count
    3
    */
      

  3.   

    Create ProceDure SP_TEST
    As
    Select 1 As A
    Union All
    Select 2
    Union All
    Select 3
    GO
    Create Table #T(SPText Nvarchar(4000))
    Insert #T EXEC sp_helptext SP_TEST
    Declare @S Varchar(100)
    Select @S='Select'
    Select SUM(Len(SPText)-Len(Replace(SPText,@S,'')))/Len(@S) As Count From #T
    Select @S='All'
    Select SUM(Len(SPText)-Len(Replace(SPText,@S,'')))/Len(@S) As Count From #T
    Drop Table #T
    GO
    Drop ProceDure SP_TEST
    --Result
    /*
    Count
    3
    Count
    2
    */