SQL Server查找表名所在存储过程
SQL SERVER 里的表一多,经常会碰到一个问题:某个表在哪些存储过程里被用到了?尤其是老项目,文档不全,代码杂,靠肉眼翻真不靠谱。
专门写的这个存储过程就挺方便,直接查表名,它会帮你从系统库里翻所有存储过程的内容,看有没有用到你指定的表。sp_helptext 和 syscomments 这些系统视图派上用场了。
语句不复杂,就是这么个逻辑:查所有带表名的OBJECT_DEFINITION
,用LIKE '%表名%'
模糊比对。结果还挺快,尤其是对小团队或接手老代码的你来说,能省不少事。
写代码的时候记得注意一下,如果你的表名比较短,比如叫log
这种,查出来的会有误伤,像user_log
、error_log
也会中招,建议加空格或者前后缀限定一下。
嗯,对了,如果你对存储过程里的内容也想一下,还可以顺手看下这篇:SQLSERVER 存储过程使用,内容比较细,适合深入研究。
,如果你最近在维护老项目,或者要重构一堆存储过程,这个工具用起来还是蛮顺手的。
下载地址
用户评论