我在SQL Server 2008中有几个表。我想查找使用此表的所有存储过程和视图的列表。我是SQL服务器的新手,我认为必须有一个简单的方法,而不是打开每个视图和存储过程并搜索表名。感谢
答案 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,只需右键单击对象资源管理器中的表格,然后选择“查看依赖关系”。