Last active
February 12, 2021 19:36
-
-
Save tcartwright/bfb301cca65685a6b9af681523b198ff to your computer and use it in GitHub Desktop.
SQL SERVER: List cross database dependencies
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| IF OBJECT_ID('tempdb..#CrossDbRefs') IS NOT NULL BEGIN | |
| DROP TABLE #CrossDbRefs | |
| END | |
| CREATE TABLE [#CrossDbRefs]( | |
| [referencing_database_name] SYSNAME NOT NULL, | |
| [referencing_object] SYSNAME NULL, | |
| [referencing_object_type] VARCHAR(20) NULL, | |
| [referenced_database_name] SYSNAME NULL, | |
| [referenced_entity_name] SYSNAME NULL | |
| ); | |
| INSERT INTO #CrossDbRefs | |
| ( [referencing_database_name], [referencing_object], [referencing_object_type], [referenced_database_name], [referenced_entity_name] ) | |
| EXEC [sys].[sp_MSforeachdb] @command1 = N' | |
| USE [?] | |
| IF DB_ID() <= 4 RETURN | |
| SELECT | |
| DBName = DB_NAME(), | |
| referencing_object = CONCAT(OBJECT_SCHEMA_NAME (sed.referencing_id), ''.'', OBJECT_NAME (sed.referencing_id)), | |
| [referencing_object_type] = cast(OBJECTPROPERTYEX(sed.[referencing_id], ''BaseType'') AS varchar(20)), | |
| sed.referenced_database_name, | |
| CONCAT(sed.referenced_schema_name, ''.'', sed.referenced_entity_name) | |
| FROM sys.sql_expression_dependencies sed | |
| WHERE sed.referenced_database_name IS NOT NULL | |
| AND sed.is_ambiguous = 0 | |
| AND sed.referenced_database_name <> DB_NAME() | |
| ' | |
| SELECT * FROM #CrossDbRefs | |
| IF OBJECT_ID('tempdb..#CrossDbRefs') IS NOT NULL BEGIN | |
| DROP TABLE #CrossDbRefs | |
| END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment