SQL Server 2005 - 查找哪些存储过程运行到特定表

时间:2010-07-29 09:43:42

标签: sql-server-2005 tsql stored-procedures

  • 我能找到一种快捷方式吗? 哪个存储过程运行到 我的数据库中的特定表?
  • 数据库非常庞大,有很多表和SPROCS ....

2 个答案:

答案 0 :(得分:4)

如果要将搜索限制为存储过程,则可以执行以下操作:

SELECT name
FROM sys.objects
WHERE type = 'P'
    AND OBJECT_DEFINITION(object_id) LIKE '%name_of_your_table%'
ORDER BY name

如果您想要包含其他SQL模块 - 例如,函数,触发器,视图等 - 那么您可以更改查询以执行WHERE type IN ('P', 'FN', 'IF', 'TF', 'V')等,或使用Martin's answer中给出的替代方法

答案 1 :(得分:3)

查看依赖关系并查看对象文本的组合应该这样做。

select * from sys.sql_modules
where 
definition like '%tableName%'
/*AND objectproperty(object_id,'isprocedure')=1 to just look at procedures*/

exec sp_depends 'tableName'