用SQL话语查找包含有某个关键字的存储过程、触发器、函数等(仅适用MS SQL SERVER)

用SQL语句查找包含有某个关键字的存储过程、触发器、函数等(仅适用MS SQL SERVER)

第一种方法:利用系统表进行查询

 
--将text替换成你要查找的内容 
select name 
from sysobjects o, syscomments s 
where o.id = s.id 
and text like '%text%' 
and o.xtype = 'P' 
 
xtype:对象类型。可以是下列对象类型中的一种: 
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程
 

第二种方法:利用系统只读视图进行查询

 
--将text替换成你要查找的内容 
SELECT ROUTINE_NAME, ROUTINE_DEFINITION 
FROM INFORMATION_SCHEMA.ROUTINES   --查询存储过程与函数
WHERE ROUTINE_DEFINITION LIKE '%text%' 
AND ROUTINE_TYPE='PROCEDURE'
 
select * from INFORMATION_SCHEMA.PARAMETERS  --查询存储过程与函数的参数
select * from INFORMATION_SCHEMA.TABLES --查询数据库的表与视图