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

9/1/2015来源:SQL技巧人气:1616

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

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

--将text替换成你要查找的内容select namefrom sysobjects o, syscomments swhere o.id = s.idand 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_DEFINITIONFROMINFORMATION_SCHEMA.ROUTINES--查询存储过程与函数WHERE ROUTINE_DEFINITION LIKE '%text%'AND ROUTINE_TYPE='PROCEDURE'select * fromINFORMATION_SCHEMA.PARAMETERS --查询存储过程与函数的参数select * fromINFORMATION_SCHEMA.TABLES --查询数据库的表与视图