1

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

4

2 回答 2

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

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

但有一些警告:


当然,这有可能导致误报,因为您可能有

-- table name

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


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

于 2012-07-12T14:59:43.400 回答
0

如果您使用的是 SSMS,只需右键单击对象资源管理器中的表并选择“查看依赖项”。

于 2012-07-12T15:02:31.567 回答