我在 SQL Server 2008 中有几张表。我想查找使用该表的所有存储过程和视图的列表。我是 SQL Server 的新手,我认为必须有一种简单的方法,而不是打开每个视图和存储过程并搜索表名。谢谢
问问题
3246 次
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 回答