在 SQL Server 中检查表的依赖关系
作为 SQL DBA,您可能需要使用 SQL Server Management Studio 或 SQL Query 在 SQL Server 中查找表的依赖项。在更改或删除任何表时获得有关依赖项的信息将很有用。
使用 SQL Server Management Studio 在 SQL Server 中查找表依赖项:
第1步 :
展开数据库,展开表,右键单击表名。
第2步 :
单击查看依赖项。
使用 SQL Quires 在 SQL Server 中查找表依赖项。
方法一:
使用 SP_DEPENDS 存储过程。它将返回对指定对象的所有依赖项,包括表、视图、存储过程、约束等。
询问 -
Use DatabaseName ;
EXEC sp_depends @objname = N'ObjectName' ;
示例-1:
Use SQL_DBA ;
EXEC sp_depends @objname = N'[dbo].[tbl_Errors_Stats]' ;
输出 :
name | type |
---|---|
dbo.usp_FetchStatistics | stored procedure |
dbo.usp_PostStatistics_Update | stored procedure |
dbo.usp_Update_theStatistics | stored procedure |
方法2:
询问 -
Use DatabaseName ;
SELECT * FROM sys.dm_sql_referencing_entities('ObjectName',
'OBJECT') ;
示例-1:
use SQL_DBA ;
SELECT * FROM sys.dm_sql_referencing_entities('[dbo].[tbl_Errors_Stats]',
'OBJECT') ;
输出 :
referencing _schema_name | referencing _entity_name | referencing _id | referencing _class | referencing _class_desc | is_caller _dependent |
---|---|---|---|---|---|
dbo | usp_FetchStatistics | 597577167 | 1 | OBJECT_OR_COLUMN | 0 |
dbo | usp_PostStatistics _Update | 581577110 | 1 | OBJECT_OR_COLUMN | 0 |
dbo | usp_Update _theStatistics | 565577053 | 1 | OBJECT_OR _COLUMN | 0 |
方法3:
询问 -
SELECT ROUTINE_SCHEMA,
ROUTINE_NAME,
ROUTINE_TYPE,
ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%ObjectName%'
示例-1:
use SQL_DBA
SELECT ROUTINE_SCHEMA,
ROUTINE_NAME,
ROUTINE_TYPE
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%tbl_Errors_Stats%'
输出 :
ROUTINE_SCHEMA | ROUTINE_NAME | ROUTINE_TYPE |
---|---|---|
dbo | usp_Update_theStatistics | PROCEDURE |
dbo | usp_PostStatistics_Update | PROCEDURE |
dbo | usp_FetchStatistics | PROCEDURE |
方法4:
询问 -
SELECT *
FROM sys.sql_expression_dependencies A, sys.objects B
WHERE referenced_id = OBJECT_ID(N'ObjectName') AND
A.referencing_id = B.object_id
GO
示例-1:
use SQL_DBA
SELECT referenced_id, referenced_database_name, referenced_schema_name, name
FROM sys.sql_expression_dependencies A, sys.objects B
WHERE referenced_id = OBJECT_ID(N'tbl_Errors_Stats') AND
A.referencing_id = B.object_id
GO
输出 :
referenced_id | referenced_database_name | referenced_schema_name | name |
---|---|---|---|
613577224 | SQL_DBA | dbo | usp_Update_theStatistics |
613577224 | SQL_DBA | dbo | usp_PostStatistics_Update |
613577224 | SQL_DBA | dbo | usp_FetchStatistics |