回答
您可以使用sys.sql_dependencies
:
select object_name(object_id),*
from sys.sql_dependencies
where referenced_major_id = object_id('<tablename>');
这将列出依赖于表中的所有对象,您可以通过加入针对sys.views
限制这观点:
select v.*
from sys.sql_dependencies d
join sys.views v on d.object_id = v.object_id
where referenced_major_id = object_id('<tablename>');
下面是一些由不知名提供从link实例(如果该网站消失计算器做之前)
对于SQL Server 2005年,右键单击表名称并选择“视图依赖性”
一对夫妇的SQL只用于SQL Server提到的方法:
SELECT routine_name, routine_type FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%Employee%'
EXEC sp_depends @objname = N'HumanResources.Employee' ;
你必须搜索代码,只有两个选项。请参阅下面的评论为什么其他方法不可靠。
select
object_name(m.object_id), m.*
from
sys.sql_modules m
where
m.definition like N'%my_view_name%'
,或者使用OBJECT_DEFINITION
syscomments和INFORMATION_SCHEMA具有为nvarchar(4000)列。所以如果在位置3998使用“myViewName”,它将不会被找到。 syscomments确实有多行,但ROUTINES截断。
在SQL Server 2000中,sys.depends是不可靠的,这影响了菜单中的“查看依赖关系”。我不知道在SQL 2005+中它是否更好。示例:视图使用表,表被删除并重新创建,具有不同的目标,依赖性=破坏。
依赖性在2005年和2008年仍然很容易打破。我写了一篇关于去年的文章:http://is.gd/4pqU8 – 2009-10-18 16:11:23
在SQL Server 2005中,您可以使用sys.sql_dependencies和蛮力解析对象文本的组合(如在gbn的答案中)。有关SQL Server 2005和的依赖关系的详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms345449(SQL.90).aspx
在SQL Server 2008中,有新的依赖的DMV和那些比以前的方法更可靠一点目录视图(sys.dm_sql_referenced_entities/sys.dm_sql_referencing_entities/sys.sql_expression_dependencies) ,但打破它们仍然很容易。
请参阅this article了解使这项工作更好的一些想法。另请参阅http://msdn.microsoft.com/en-us/library/bb677168.aspx
@kmoormann感谢编辑,这回去了 – 2014-01-30 17:58:56
- 1. 与视图相关的数据库对象 - sql server 2005
- 2. Sql Server 2005索引视图
- 3. 全文搜索(SQL Server 2005中)仅适用于某些领域
- 4. 同步非数据库SQL Server对象
- 5. SQL Server 2000:通过数据库搜索
- 6. 使用新数据库名更新SQL Server 2005视图?
- 7. SQL列搜索问题(SQL Server 2005中)
- 8. 如何在sql server 2005中编写sql server数据库图表?
- 9. SQL Server 2005的数据透视
- 10. 搜索SQL Server元数据
- 11. autosizing sql server数据库图视图
- 12. 在SQL Server中查找对象(跨数据库)
- 13. SQL 2005 XML搜索
- 14. SQL查询列出SQL Server 2005数据库中的所有视图
- 15. SQL Server 2005全文搜索问题
- 16. SQL Server 2005全文搜索:Noise Words
- 17. SQL Server 2005数据透视表问题
- 18. sql server 2005附加数据库中断
- 19. SQL Server 2005数据库邮件故障
- 20. 在SQL Server 2005中创建数据库
- 21. SQL Server 2005数据库镜像错误
- 22. SQL Server 2005,收缩复制数据库
- 23. SQL Server 2005 - 多个数据库
- 24. Malscript注入SQL Server 2005数据库
- 25. 在SQL Server数据库恢复2005
- 26. ms sql server 2005数据库容量
- 27. SQL Server 2005数据库备份
- 28. 使用SQL Server 2005还原数据库
- 29. SQL Server 2005数据库设计师
- 30. SQL Server 2005查找某个数据类型的数据库中的所有列
此sys.sql_dependencies在以后的版本中不推荐使用它是可靠的吗?请参阅我的回答... – gbn 2009-10-18 12:37:33
sysdepends是已弃用的一个。 2005年引入了sql_dependencies,并且不推荐使用afaik。亚伦的文章比我在这里发表的评论更深入地讨论了各种问题。我的观点是,元数据依赖关系跟踪太脆弱,最好的做法是在开发源控制级别跟踪依赖关系。例如。 VSTS数据库版GDR R2在此方面做得更好:http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=en。 – 2009-10-18 17:36:29