您可能想看看这个SO问题,我正在寻找一种可靠的方式来验证T-SQL存储过程。有人得到吗?基本上是同一件事,有几个答案。
要基于Alaa Awad发布的脚本...,这应该显示引用和引用对象的模式和数据库。如果您通过别名使用许多临时表(使用时有时会显示这些表sys.sql_expression_dependencies
),UDTT参数或其他动态功能,则可能需要使用这些功能,sys.dm_sql_referenced_entities
或者sys.dm_sql_referencing_entities
也可以使用这些功能。
SELECT
DB_NAME() + '.' + OBJECT_SCHEMA_NAME(sed.referencing_id) + '.' + OBJECT_NAME(sed.referencing_id) AS [referencingObject],
isnull(sed.referenced_server_name + '.', '') + isnull(sed.referenced_database_name + '.', DB_NAME() + '.') + isnull(sed.referenced_schema_name + '.', OBJECT_SCHEMA_NAME(sed.referencing_id) + '.') + sed.referenced_entity_name AS [missingReference]
FROM
sys.sql_expression_dependencies sed
WHERE
sed.is_ambiguous = 0
AND OBJECT_ID(isnull(sed.referenced_database_name + '.', DB_NAME() + '.') + isnull(sed.referenced_schema_name + '.', OBJECT_SCHEMA_NAME(sed.referencing_id) + '.') + sed.referenced_entity_name) IS NULL
ORDER BY
[referencingObject], [missingReference]