查找包含有某个表的存储过程、触发器、函数等等:
用SQL语句查找在存储过程、触发器、函数等等里面涉及到某张表名的内容,例如查询涉及TEST表的存储过程有哪些,如下:
1.查找所有的存储过程
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 '%TEST%' --关键字
group by id
或者
select distinct name
from sysobjects o, syscomments s
where o.id = s.id
and text like '%TEST%'
and o.xtype = 'P'
2.查找所有的触发器
select OBJECT_NAME(id) as 存储过程,id,* from syscomments
where id in
(
select
object_id(name)
from dbo.sysobjects
where xtype='TR'
)
3.查找触发器对应的的表
SELECT tr.name AS trigger_name, t.name AS table_name
FROM sys.triggers tr
JOIN sys.tables t ON tr.parent_id = t.object_id
4.删除触发器
DROP TRIGGER IF EXISTS 触发器名称
-----------------------------------------------
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 = 扩展存储过程

浙公网安备 33010602011771号