搜索存储过程和视图使用的表的简便方法?

时间:2012-07-12 14:59:00

标签: sql-server-2008 tsql

我在SQL Server 2008中有几个表。我想查找使用此表的所有存储过程和视图的列表。我是SQL服务器的新手,我认为必须有一个简单的方法,而不是打开每个视图和存储过程并搜索表名。感谢

2 个答案:

答案 0 :(得分:3)

SELECT OBJECT_SCHEMA_NAME(object_id),
  OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE [definition] LIKE '%table name%';

这比依赖关系视图更可靠,因为它们依赖于按正确顺序编译的对象。

但有一些警告:


当然,这可能会产生误报,因为你可以

-- table name

或者您正在搜索的表名可能是在其他代码中自然出现的常用单词,即使它没有引用该特定表。


这可能会错过引用,例如如果您动态构建字符串或将表名称传递给动态SQL。

答案 1 :(得分:0)

如果您正在使用SSMS,只需右键单击对象资源管理器中的表格,然后选择“查看依赖关系”。