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

由于在公司服务器上在某个时段查询某个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‘)

时间: 2024-11-01 23:50:43

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

SQLServer分页查询存储过程

项目中用到的SQLServer分页查询存储过程. [存储过程] create PROCEDURE prcPageResult -- 获得某一页的数据 -- @currPage int = 1,                         --当前页页码 (即Top currPage) @showColumn varchar(2000) = '*',           --需要得到的字段 (即 column1,column2,......) @strCondition varchar(200

佩特来项目经验小集合(2)___组合查询存储过程,报错 "varchar JBID='' 转换成数据类型 int 时失败"

今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' 转换成数据类型 int 时失败.错误详情如图所看到的: 经百度:字符串变量和整型变量连接不能用+连接. 于是我採用cast()函数将DLSJB这个整型变量转换成字符串,这样问题就攻克了. 正确代码例如以下所看到的: ALTER PROCEDURE [dbo].[Proc_SH_WXJDList] @DH

佩特来项目经验小集合(2)___组合查询存储过程,报错 "varchar JBID='' 转换成数据类型 int 时失败"

今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' 转换成数据类型 int 时失败.错误详情如图所示: 经百度:字符串变量和整型变量连接不能用+连接.于是我采用cast()函数将DLSJB这个整型变量转换成字符串,这样问题就解决了.正确代码如下所示: ALTER PROCEDURE [dbo].[Proc_SH_WXJDList] @DH varchar(

CoreJava_线程并发(阻塞队列):在某个文件夹下搜索含有某关键字的文件

Java多线程编程是非常考验一个程序员水平的.传统的WEB程序中,因为框架提供了太多的健壮性.并发性.可靠性的支持,所以我们都是将所有的注意力放到了业务实现上.我们只是按照业务逻辑的要求,不停的积累自己的代码.因为知识,或者是经验的限制,经常出现了问题而不自知.例如,某些比较原始的项目中,并没有使用Spring等相对来说比较灵活健壮的框架.而是仅仅使用Servlet来作为服务端的实现方式. 举一个简单的栗子,众所周知,当请求到了容器,容器是创建并且启动了一个Servlet线程来对当前的请求作出相

多表查询存储过程

多表查询存储过程  :看懂了应该会有所收获 1 -- Description: 根据条件查询金融产品信息. 2 -- ============================================= 3 ALTER PROCEDURE [dbo].[SearchProduct] 4 ( 5 @ben1 AS DECIMAL(38, 2) , 6 @yue1 AS INT , 7 @strWhere AS NVARCHAR(MAX), 8 @PageSize as int, 9 @Pag

SQL Server 分页查询存储过程

1.低效的分页 SELECT TOP m-n+1 * FROM publish WHERE (id NOT IN (SELECT TOP n-1 id FROM publish)) 但这个存储过程有一个致命的缺点,就是它含有NOT IN字样.虽然我可以把它改造为: SELECT TOP 页大小 * FROM Table1 WHERE not exists (select * from (select top (页大小*页数) * from table1 order by id) b where

使用resultMap实现ibatis复合数据结构查询(1.多重属性查询;2.属性中含有列表查询)

以订单为例(订单详情包括了订单的基本信息,配送物流信息,商品信息),直接上代码: 1.多重属性查询 java实体 public class OrderDetail { @XmlElement(required = true) protected String orderSn; @XmlElement(required = true) protected String orderAmount; @XmlElement(required = true) protected String orderS

linux命令(10)使用kill杀死含有指定关键字的进程

命令:ps -ef|grep keyword|grep -v grep|cut -c 9-15|xargs kill -9 批量杀死包含关键字“keyword”的进程. "ps -ef" ——查看所有进程 "grep keyword" ——列出所有含有关键字"./amplxe-gui"的进程 "grep -v grep" ——在列出的进程中去除含有关键字"grep"的进程(因为我们在前一步生成的grep进程

MyBatis高级查询 存储过程

1.第一个存储过程  根据用户id查询用户其他信息 #第一个存储过程 #根据用户id查询用户其他信息 DROP PROCEDURE IF EXISTS `select_user_by_id`; DELIMITER ;; CREATE PROCEDURE `select_user_by_id` ( IN userId BIGINT, OUT userName VARCHAR (50), OUT userPassword VARCHAR (50), OUT userEmail VARCHAR (50