sys.sql_dependencies(Transact-SQL)

업데이트: 2006년 12월 12일

SQL 식에서 참조된 엔터티(독립) 또는 다른 개체(종속)로의 참조가 정의된 문의 종속성당 한 개의 행을 포함합니다. sys.sql_dependencies 뷰는 엔터티 간의 이름별 종속성을 추적하는 데 사용됩니다. sys.sql_dependencies의 각 행에 대해 참조된 엔터티가 참조하는 개체의 영구 SQL 식에 이름별로 나타납니다. 또한 참조하는 개체에 스키마 바운드 식이 있을 경우 종속성이 적용됩니다. 자세한 내용은 SQL 종속성 이해를 참조하십시오.

열 이름 데이터 형식 설명

class

tinyint

참조된(독립) 엔터티의 클래스를 식별합니다.

0 = 개체 또는 열(스키마 바운드가 아닌 참조만 해당)

1 = 개체 또는 열(스키마 바운드 참조)

2 = 유형(스키마 바운드 참조)

3 = XML 스키마 컬렉션(스키마 바운드 참조)

4 = 파티션 함수(스키마 바운드 참조)

class_desc

nvarchar(60)

참조된(독립) 엔터티의 클래스에 대한 설명입니다.

  • OBJECT_OR_COLUMN_REFERENCE_NON_SCHEMA_BOUND
  • OBJECT_OR_COLUMN_REFERENCE_SCHEMA_BOUND
  • TYPE_REFERENCE
  • XML_SCHEMA_COLLECTION_REFERENCE
  • PARTITION_FUNCTION_REFERENCE

object_id

int

참조(종속) 개체의 ID입니다.

column_id

int

종속 ID가 열인 경우 참조(종속) 열의 ID이며 아닌 경우 0입니다.

referenced_major_id

int

다음에서 지정한 클래스의 값에 따라 해석되며 참조된(독립) 엔터티의 ID입니다.

0, 1 = 개체 또는 열의 개체 ID

2 = 유형 ID

3 = XML 스키마 컬렉션 ID

referenced_minor_id

int

다음과 같이 클래스의 값에 따라 해석되며 참조된(독립) 엔터티의 보조 ID입니다.

클래스 값과 그에 따른 해석은 다음과 같습니다.

0, referenced_minor_id는 열 ID이고 열이 아닌 경우 0입니다.

1, referenced_minor_id는 열 ID이고 열이 아닌 경우 0입니다.

그 외의 경우 referenced_minor_id = 0입니다.

is_selected

bit

개체 또는 열이 선택되었습니다.

is_updated

bit

개체 또는 열이 업데이트되었습니다.

is_select_all

bit

개체가 SELECT * 문에서 사용되었습니다(개체 수준만 해당).

주의

종속성은 참조(종속) 개체가 생성되는 시점에 참조된(독립) 엔터티가 있는 경우에만 CREATE 중에 설정됩니다. 이름 확인이 지연되므로 참조된 엔터티는 생성 시점에 존재하지 않아도 됩니다. 이 경우 종속성 행은 생성되지 않습니다. 또한 동적 SQL을 통해 참조된 엔터티는 종속성을 설정하지 않습니다.

참조된(독립) 엔터티가 DROP을 사용하여 삭제된 경우 종속성 행은 자동으로 삭제됩니다. 종속성 행을 다시 설정하려면 CREATE를 사용하여 정확한 종속성 순서에 따라 참조된 부분 및 참조하는 부분을 모두 다시 만들어야 합니다.

스키마 바운드 종속성과 스키마 바운드가 아닌 종속성 모두 개체에 대해 추적됩니다. CHECK 제약 조건, 기본값 및 계산 열 참조는 암시적인 스키마 바운드입니다. 유형, XML 스키마 컬렉션 및 파티션 함수의 종속성은 스키마 바운드 종속성에 대해서만 추적됩니다. SQL Server 2005 서비스 팩 1 이전에서 Transact-SQL 함수 또는 Transact-SQL 프로시저에 정의된 매개 변수는 암시적으로 스키마에 바인딩됩니다. 따라서 CLR 사용자 정의 유형, 별칭 또는 XML 스키마 컬렉션에 종속된 매개 변수는 sys.sql_dependencies 카탈로그 뷰를 사용하여 볼 수 있습니다. 그러나 이러한 개체의 이름을 바꿀 수는 없습니다. SQL Server 2005 서비스 팩 2에서 이러한 개체에 종속된 매개 변수는 스키마 바인딩을 사용하여 Transact-SQL 모듈을 만든 경우에만 카탈로그 뷰에서 추적됩니다. 스키마 바인딩되지 않은 모듈에서 매개 변수로 사용된 CLR 사용자 정의 유형, 별칭 또는 XML 스키마 컬렉션은 이름을 바꿀 수 있지만 sp_refreshsqlmodule을 사용하여 모듈 정의를 새로 고쳐야 할 수도 있습니다.

1. 지정한 함수에 대한 종속성 찾기

다음 예에서는 지정된 함수에 대한 종속성을 반환합니다. 다음 쿼리를 실행하기 전에 <database_name><schema_name.function_name>을 올바른 이름으로 대체합니다.

USE <database_name>;
GO
SELECT OBJECT_NAME(object_id) AS referencing_object_name
    ,COALESCE(COL_NAME(object_id, column_id), '(n/a)') AS referencing_column_name
    ,*
FROM sys.sql_dependencies
WHERE referenced_major_id = OBJECT_ID('<schema_name.function_name>')
ORDER BY OBJECT_NAME(object_id), COL_NAME(object_id, column_id);
GO 

2. 지정한 CLR 사용자 정의 유형에 종속된 CHECK 제약 조건 찾기

다음 쿼리를 실행하기 전에 <database_name>을 올바른 이름으로 대체하고 <schema_name.data_type_name>을 올바른 스키마 한정 CLR 사용자 정의 유형 이름으로 대체합니다.

USE <database_name>;
GO
SELECT SCHEMA_NAME(o.schema_id) AS schema_name
    ,OBJECT_NAME(o.parent_object_id) AS table_name
    ,OBJECT_NAME(o.object_id) AS constraint_name
FROM sys.sql_dependencies AS d
JOIN sys.objects AS o ON o.object_id = d.object_id
WHERE referenced_major_id = TYPE_ID('<schema_name.data_type_name>')
    AND class = 2 -- schema-bound references to type
    AND OBJECTPROPERTY(o.object_id, 'IsCheckCnst') = 1; -- exclude non-CHECK dependencies
GO

3. 지정한 CLR 사용자 정의 유형 또는 별칭 유형에 종속된 뷰, Transact-SQL 함수 및 Transact-SQL 저장 프로시저 찾기

다음 쿼리는 지정한 CLR 사용자 정의 유형 또는 별칭 유형에 대한 뷰, Transact-SQL 함수 및 Transact-SQL 저장 프로시저에 있는 모든 스키마 바운드 종속성을 반환합니다.

USE <database_name>;
GO
SELECT SCHEMA_NAME(o.schema_id) AS dependent_object_schema
  ,OBJECT_NAME(o.object_id) AS dependent_object_name
  ,o.type_desc AS dependent_object_type
  ,d.class_desc AS kind_of_dependency
  ,TYPE_NAME (d.referenced_major_id) AS type_name
FROM sys.sql_dependencies AS d 
JOIN sys.objects AS o
  ON d.object_id = o.object_id
  AND o.type IN ('FN','IF','TF', 'V', 'P')
WHERE d.class = 2 -- dependencies on types
  AND d.referenced_major_id = TYPE_ID('<schema_name.data_type_name>')
ORDER BY dependent_object_schema, dependent_object_name;
GO

참고 항목

참조

카탈로그 뷰(Transact-SQL)
개체 카탈로그 뷰(Transact-SQL)
sp_rename(Transact-SQL)
sp_refreshsqlmodule(Transact-SQL)

관련 자료

사용자 정의 유형 구현
SQL 종속성 이해
SQL Server 시스템 카탈로그 쿼리에 대한 질문과 대답
서버에서 XML 스키마 컬렉션 관리

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • 사용자 정의 유형, 별칭 및 XML 스키마 컬렉션이 Transact-SQL 모듈의 매개 변수로 선언된 경우 이러한 개체의 종속성에 대한 정보를 추가했습니다.
  • 예 섹션을 추가했습니다.