查询存储过程里面的含有的关键字

Posted ☆♂安♀★

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询存储过程里面的含有的关键字相关的知识,希望对你有一定的参考价值。

由于在公司服务器上在某个时段查询某个sql执行比较慢,然后查到了某个sql里面含有in,造成数据库服务器经常超时,又不想一条一条的看,然后写了一个方法

 

CREATE Procedure GetKey @Key Varchar(200)=‘‘,@Type VarChar(10)=‘and‘
As
Set NoCount On
Declare @S Varchar(400),@If Varchar(400)
Set @S=‘Select ‘‘SPText ‘‘ as SH,Object_Name(S.[Object_ID]) as Obj,O.Modify_Date‘+Char(13)
Set @[email protected]+‘ From Sys.SQL_Modules S Join Sys.Objects O On S.Object_ID=O.Object_ID‘+Char(13)
Set @If=‘‘
While CharIndex(‘..‘,@Key)>0
Begin
Set @[email protected]+‘ ‘[email protected]+‘ S.[Definition] Like ‘‘%‘+SubString(@Key,1,CharIndex(‘..‘,@Key)-1)+‘%‘‘‘+Char(13)
Set @Key=SubString(@Key,CharIndex(‘..‘,@Key)+2,80)
End
If @Key>‘‘ Set @[email protected]+‘ ‘[email protected]+‘ S.[Definition] Like ‘‘%‘[email protected]+‘%‘‘‘+Char(13)
If @If>‘‘ Set @If=‘ Where ‘+SubString(@If,Case When @Type=‘and‘ Then 5 Else 4 End,400)
Exec(@[email protected]+‘ Order By 3 Desc‘) 

以上是关于查询存储过程里面的含有的关键字的主要内容,如果未能解决你的问题,请参考以下文章

关于sqlserver中存储过程里面in关键字的使用

在mysql的存储过程中使用条件(关键字'IF'等)形成查询

sql 知道父节点,查询所有的子节点,运用游标,递归,存储过程

MSSQL·查询存储过程中的关键字

java调用oracle存储过程 关于sql里面in函数参数的问题

怎么在mysql中查询已建立的存储过程