我使用下面的方法来获取视图中的基础对象列表:

SELECT view_name, Table_Name
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE View_Name IN 
    (
      'View1', 'View2'
    )
ORDER BY view_name, table_name

我找不到任何在函数中提供基本对象的系统表。有没有人有任何想法如何轻松地拉取这些信息?我正在处理具有多个基本DB对象的许多函数,并希望避免手动努力获取此信息。谢谢!

有帮助吗?

解决方案

sp_depends 将为您提供所有当前版本中的依赖对象列表SQL Server但被列为已弃用。

这里是一个msdn文章,具有查找对象引用的方法功能和小型修改,您可以获得函数引用的对象列表:

SELECT OBJECT_NAME(object_id) AS referencing_object_name
 ,COALESCE(COL_NAME(object_id, column_id), '(n/a)') AS referencing_column_name
 ,object_name(referenced_major_id) as referenced_object
 ,*
FROM sys.sql_dependencies
--WHERE referenced_major_id = OBJECT_ID('schema.objectname')
where object_id = object_id('schema.objectname')
ORDER BY OBJECT_NAME(object_id), COL_NAME(object_id, column_id);
.

和作为奖金: http://beyondrelational.com/modules/2/blogs/28/posts/10399/tsql-lab-9-how-to-find-the - 依赖性链 - a-database-object.aspx

其他提示

*请阅读 *

正如上面@Spörri答案中所指出的那样, sys.sql_dependencies 被弃用。


系统。sql_dependencies(Transact-SQL) :

此功能将在未来版本的Microsoft SQL中删除 服务器。避免在新的开发工作中使用此功能,并计划 修改当前使用此功能的应用程序。使用方法 系统。sql_expression_dependencies代替。


我在3个函数中观察到,在弃用的表中缺少一个functionas对象id sys.sql_dependencies, ,我发现所有在 sys.sql_expression_dependencies 表代替。所以使用下面的方法来获取依赖关系:

select * 
from sys.sql_expression_dependencies
where referencing_id =  object_id('schema.object_name') 
许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top