본문 바로가기
DB 기본 개념 다지기

MSSQL 종속성 보기 방법 (Dependency View)

by 양블로그 2025. 2. 21.
반응형

MSSQL을 사용하다 보면 테이블, 뷰(View), 저장 프로시저(Stored Procedure) 등의 종속성(Dependency) 을 확인해야 하는 경우가 많습니다. 특히, 테이블을 변경하거나 삭제하기 전에 해당 테이블이 다른 객체에서 참조되고 있는지를 확인하는 것은 매우 중요합니다. 이번 포스팅에서는 MSSQL에서 종속성을 확인하는 여러 가지 방법을 소개하겠습니다.


1. SSMS (SQL Server Management Studio)에서 종속성 보기

SSMS에서 간단한 GUI를 통해 종속성을 확인할 수 있습니다.

방법:

  1. SSMS를 실행하고 데이터베이스에 연결합니다.
  2. 탐색기에서 테이블, 뷰, 저장 프로시저 등 확인할 객체를 찾습니다.
  3. 해당 객체를 우클릭 → '이름 변경 또는 종속성 보기(Dependencies)' 선택
  4. '객체가 참조하는 항목'과 '객체를 참조하는 항목' 두 가지 종속성 정보를 확인할 수 있습니다.

📌 예시 이미지:


2. sys.sql_dependencies 뷰 사용하기

SQL Server에서는 sys.sql_dependencies 시스템 뷰를 사용하여 종속성을 확인할 수 있습니다. 하지만 이 뷰는 오래된 방식이므로 최신 버전에서는 sys.dm_sql_referenced_entitiessys.dm_sql_referencing_entities를 사용하는 것이 좋습니다.

사용법:

SELECT OBJECT_NAME(object_id) AS referencing_object, referenced_major_id AS referenced_object_id
FROM sys.sql_dependencies
WHERE referenced_major_id = OBJECT_ID('테이블명');

⚠️ 주의:

  • sys.sql_dependencies2008 이전 버전에서 주로 사용되며, 이후 버전에서는 더 이상 추천되지 않습니다.

3. sys.dm_sql_referenced_entitiessys.dm_sql_referencing_entities 사용하기

최신 SQL Server에서는 동적 종속성 조회 DMV(Dynamic Management Views) 를 활용하는 것이 더욱 효과적입니다.

(1) 특정 객체가 참조하는 모든 객체 확인

SELECT referenced_entity_name, referenced_class_desc
FROM sys.dm_sql_referenced_entities ('dbo.테이블명', 'OBJECT');

✅ 이 쿼리는 해당 테이블이 참조하는 다른 객체를 반환합니다.

(2) 특정 객체를 참조하는 모든 객체 확인

SELECT referencing_schema_name, referencing_entity_name, referencing_class_desc
FROM sys.dm_sql_referencing_entities ('dbo.테이블명', 'OBJECT');

✅ 이 쿼리는 해당 테이블을 참조하는 다른 객체(뷰, 저장 프로시저 등) 를 반환합니다.


4. sp_depends 저장 프로시저 사용하기 (구버전용)

MSSQL 2012 이전 버전에서는 sp_depends 저장 프로시저를 사용하여 종속성을 조회할 수 있습니다.

EXEC sp_depends 'dbo.테이블명';

✅ 이 명령어를 실행하면 해당 테이블을 참조하는 객체 및 해당 테이블이 참조하는 객체 목록을 출력합니다.

⚠️ 주의:

  • sp_depends는 최신 SQL Server 버전에서는 정확한 결과를 보장하지 않으므로, sys.dm_sql_referenced_entities를 사용하는 것이 더 좋습니다.

📌 MSSQL 종속성 확인 방법 비교

방법사용 가능 버전특징

SSMS GUI 모든 버전 클릭 몇 번으로 쉽게 확인 가능
sys.sql_dependencies MSSQL 2008 이하 더 이상 권장되지 않음
sys.dm_sql_referenced_entities MSSQL 2008 이상 최신 방식, 정확한 데이터 제공
sys.dm_sql_referencing_entities MSSQL 2008 이상 최신 방식, 정확한 데이터 제공
sp_depends MSSQL 2012 이하 구버전 지원, 최신 버전에서는 정확도 낮음

✅ 결론

  • SSMS의 '종속성 보기(Dependencies)' 기능을 사용하면 GUI에서 쉽게 확인 가능
  • 최신 SQL Server에서는 sys.dm_sql_referenced_entitiessys.dm_sql_referencing_entities 사용 추천
  • 구버전에서는 sp_depends 또는 sys.sql_dependencies 활용 가능

테이블이나 저장 프로시저를 변경 또는 삭제하기 전에 종속성을 꼭 확인하여 예상치 못한 오류를 방지하세요! 😊

반응형