sqlserver-查询有哪些存储过程用到指定的表

根据表名和存储过程对应的id,返回存储过程的名称

syscomments

https://learn.microsoft.com/zh-cn/sql/relational-databases/system-compatibility-views/sys-syscomments-transact-sql?redirectedfrom=MSDN&view=sql-server-ver16

sysobjects

https://learn.microsoft.com/zh-cn/sql/relational-databases/system-compatibility-views/sys-sysobjects-transact-sql?view=sql-server-ver16

use 库名 

/*
根据表名和存储过程对应的id,返回存储过程的名称
object_id   根据对象名称返回该对象的ID.
object_name 根据对象ID返回对象名称.
syscomments 系统表,包含数据库中每个视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的项
sysobjects  在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行
**/
select distinct object_name(id) from syscomments where id in
(select id from sysobjects where type ='p' ) and text like'%表名%'



通过sql文本查询代码片段,返回对象id来查询存储过程名称

sys.objects

https://learn.microsoft.com/zh-cn/sql/relational-databases/system-catalog-views/sys-objects-transact-sql?view=sql-server-ver16

sys.sql_modules

https://learn.microsoft.com/zh-cn/sql/relational-databases/system-catalog-views/sys-sql-modules-transact-sql?view=sql-server-ver16

/*
通过sql文本查询代码片段的方法,返回对象id来查询存储过程名称
sys.objects 包含数据库中创建的每个用户定义的架构范围对象(包括本机编译的标量用户定义函数)的行
sys.sql_modules  为sqlServer中sql语言定义模块的每个对象(包括本机编译的标量用户定义函数)返回一行
**/
select o.name/*对象名*/,m.definition/*sql文本*/ from sys.objects o
left outer join sys.sql_modules m 
on o.object_id = m.object_id
where m.definition/*sql文本*/ like '%代码片段%'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jackie_Mina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值