为什么存储过程中的函数被标识为依赖项而不是存储过程调用的存储过程?

时间:2013-04-05 11:56:58

标签: sql sql-server database-design dependencies

我目前正在对我们的SQL Server数据库进行一些影响分析,以准备我已经完成的工作范围。

我目前正在列出我确定要包含在工作范围内的所有对象的所有依赖项。

一个表有一个触发器,其中包括标量函数和存储过程。当我查看依赖项时,我没有看到存储过程。

我想更好地理解为什么会这样,如果有更好的方法来解决这个问题,那么什么都不会错过?

有人可以帮助一名大三学生吗?

1 个答案:

答案 0 :(得分:1)

我相信这应该会向您展示您正在寻找的参考资料。

SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name, 
    o.type_desc AS referencing_desciption, 
    COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id, 
    referencing_class_desc, referenced_class_desc,
    referenced_server_name, referenced_database_name, referenced_schema_name,
    referenced_entity_name, 
    COALESCE(COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name,
    is_caller_dependent, is_ambiguous
FROM sys.sql_expression_dependencies AS sed
INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id
WHERE referencing_id = OBJECT_ID(N'{THEOBJECTNAME}');

请参阅:sys.sql_expression_dependencies