用SQL语句查找包含有某个关键字的存储过程、触发器、函数等等
select name from sysobjects o, syscomments s where o.id = s.id and text like '%Extent1%' --and o.xtype = 'P' 或者 SELECT OBJECT_NAME(id) AS 存储过程, id FROM syscomments WHERE id IN ( SELECT OBJECT_ID(name) FROM dbo.sysobjects WHERE xtype = 'P' --存储过程为P ) AND text LIKE '%FieldName%' --关键字 GROUP BY id;
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 = 扩展存储过程
例如:
select b.name
from iqsys.dbo.syscomments a, iqsys.dbo.sysobjects b
where a.id=b.id and b.xtype=’p’ and a.text like ‘%黑名单%’
order by name