2010-04-27 2 views
1

SQL Server에서 가능한 모든 개체 형식 종속성을 찾을 수있는 곳이 있습니까?Sql 서버 : 모든 개체 종속성

"개체 종속성"이 의미하는 것은 한 개체가 의존 할 수있는 개체의 목록입니다. 예를 들어, 표 (표 '푸'에 따라 무엇을 객체) 등 실제 객체의 경우

답변

0

SCHEMA, TYPE, 표, 기능에 따라 달라질 수 있습니다

sys.sql_dependencies

대부분 정확 . SMO 도우미 DependencyWalker도 있습니다.

일반적으로 유형 질문 (예 : 테이블이 어떤 유형의 객체를 사용할 수 있는지)에 대해서는 MSDN에서 각 객체 CREATE/ALTER 문에 대한 사양을 검토하고 신중하게 모든 것을 읽어야합니다.

+0

일반적으로 모든 개체 간의 종속성에 관심이 있습니다. 특정 데이터베이스/서버의 종속성에 대한 것이 아닙니다. 예를 들어 TABLE이 의존 할 수있는 모든 OBJECTS 목록이 필요합니다. – Gjorgji

1

기술적으로 동적 SQL을 제외하고 SQL Server는 종속성을 추적합니다. 그러나 SQL Server 2008에서는 모든 종속 엔터티가 만들어 질 때 종속성 만 업데이트 되었기 때문에 해당 추적이 안정적이지 않았습니다. SQL Server 2008은 종속성 추적을 크게 향상 시켰습니다.

SQL Server 2000 및 2005에서는 sys.sql_dependencies에 대해 쿼리하여 종속성 목록을 얻을 수 있습니다.

SQL Server 2008에서는 sys.sql_expression_dependencies을 사용해야합니다. 자세한 내용은 sys.sql_expression_dependencies을 참조하십시오.

수정 질문을 잘못 해석했을 수도 있습니다. 그것은 당신이 테이블 타입 객체가 의존 할 수있는 객체 타입의리스트를 찾는 것처럼 들린다. 직접 또는 간접적으로, 그것은 시스템의 모든 오브젝트 유형입니다. "직접"의존성 만 원할 경우 "직접"이 의미하는 바에 달려 있습니다. 예를 들어 뷰에 대한 트리거 테이블의 직접적인 종속성으로 뷰 카운트를 참조하는 트리거가 있습니까?

EDIT 내가 아는 한, 형식간에 가능한 모든 종속성의 열거 형 목록이 없습니다.

Select DependentObj.Type, ReferencedObj.Type 
from sys.sql_dependencies As D 
    Join sys.sysobjects As ReferencedObj 
     On ReferencedObj.id = D.referenced_major_id 
    Join sys.sysobjects As DependentObj 
     On DependentObj.id = D.object_id 
Group By DependentObj.Type, ReferencedObj.Type 
+0

일반적으로 모든 개체 간의 종속성에 관심이 있습니다. 특정 데이터베이스/서버의 종속성과 관련이 없습니다. 예를 들어, TABLE이 의존 할 수있는 모든 OBJECTS리스트가 필요합니다. – Gjorgji

+0

@Gjorgji - 이해할 수 있을지 모르겠습니다. 언급 된 카탈로그 뷰를 사용하면 주어진 테이블에 의존하는 모든 오브젝트 또는 주어진 테이블이 의존하는 모든 오브젝트를 찾을 수 있습니다. – Thomas

+0

@Gjorgji - 그러나 데이터베이스 외부의 어떤 오브젝트가 주어진 테이블에 의존하는지 판별 할 수있는 방법이 없다는 것은 분명합니다. – Thomas

0

A는 사용자 정의 함수에 의존 할 수있는 테이블에서 계산 된 열을 지속 : 당신이 얻을 수있는 최선은 같은 것을 사용하여 주어진 데이터베이스에 다른 유형에 따라 달라집니다 않는 유형을 분석하는 것이다.

비 결정적 사용자 정의 함수는 테이블에 종속 될 수 있습니다.

제약 조건으로 인해 테이블이 테이블에 종속 될 수 있습니다.

ad nauseum.

개체 유형 쌍을 선택할 수 있으며 종속성이 생길 수 있습니다.

다양한 SQL Server 기능에는 몇 가지 제한 사항이 있지만 분명히 허용되는 모든 허용되는 모든 종속성에 대한 포괄적 인 매트릭스는 알지 못합니다.