2013-01-15 3 views
0

데이터베이스의 모든 테이블을 표시하는 보고서를 생성하고 싶습니다. 각 테이블에 대해 보고서는 참조하는 테이블과 참조되는 테이블을 문서화합니다. 참조에 사용되는 외래 키도 포함됩니다.SQL Server : 참조 된 테이블 및 외래 키 보고서

나는 이전에 Red Gate SQL Dependency Tracker을 사용해 보았고 읽기 쉽고 유용한 보고서를 제공했습니다. 부족한 부분은 각 테이블 연결에 대한 외래 키에 불과했습니다.

누구나 내가하고 싶은 일을 할 수있는 훌륭한 대체 소프트웨어가 될 수 있거나 대체 방법의 일부 형태를 제공 할 수 있다면 매우 감사하게 생각합니다! 내 주요 목적은 실제로 고객이 DB 내의 상호 연결을 이해할 수 있도록 읽을 수있는 스키마의 일부 양식을 고객에게 제공하는 것입니다 ... 나는 데이터베이스 다이어그램을 사용하여 시도했지만 그게 no-go로 인한 것입니다. 가독성.

감사합니다.

답변

0

나는 하루의 끝에서 Toad for SQL Server을 사용했습니다. 데이터베이스 문서는 실제로 표준이 아닐 수도 있지만, Red Gate보다 사용자 정의가 가능합니다. 보고서 생성기를 사용하여 참조한 열뿐만 아니라 각 외래 키에 대한 종속성을 도출 할 수있었습니다 ...

모든 대답에 감사 드리며 많은 도움을주었습니다.

0

sp_help <table_name>은 테이블이 참조하는 외래 키와 해당 열을 외래 키로 참조하는 테이블을 출력합니다. sys.tables을 쿼리하고 sp_help을 사용하면 필요한 모든 정보를 얻을 수 있습니다.

+0

그래,하지만 읽을 수있는 형식으로 출력하고 싶습니다 ... 내 자신의 서식을 적용하고이 모든 작업을 수행하기 위해 자신의 코드를 작성할 수 있지만 너무 많은 번거 로움이있는 것 같습니다. – matt

1

나는 시스템 카탈로그 뷰

SELECT 
    fk.name 'FK Name', 
    tpar.name 'Parent Table', 
    colpar.name 'Parent Column', 
    tref.name 'Referenced Table', 
    colref.name 'Referenced Column', 
    fk.delete_referential_action_desc 'Delete Action', 
    fk.update_referential_action_desc 'Update Action' 
FROM 
    sys.foreign_keys fk 
INNER JOIN 
    sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id 
INNER JOIN 
    sys.tables tpar ON fk.parent_object_id = tpar.object_id 
INNER JOIN 
    sys.columns colpar ON fkc.parent_object_id = colpar.object_id AND fkc.parent_column_id = colpar.column_id 
INNER JOIN 
    sys.tables tref ON fk.referenced_object_id = tref.object_id 
INNER JOIN 
    sys.columns colref ON fkc.referenced_object_id = colref.object_id AND fkc.referenced_column_id = colref.column_id 

의 일부를 쿼리이 스크립트를 사용하고 같은 출력 뭔가 생산 : 나를 위해 꽤 잘 작동

FK Name Parent Table Parent Column Referenced Table Referenced Column Delete Action Update Action 

합니다. 자신의 필요에 자유롭게 적응하십시오.

1

종속성 트래커는 기본적으로 외래 키를 표시하지 않지만 "개체로 제약 표시"단추를 클릭하면 수행됩니다.

0

ApexSQL Clean을 사용해 보셨습니까? 모든 참조를 시각적으로 표시하고 모든 관계를 파헤치는 옵션이 있습니다. ...

모든 데이터를 보여주는 문서 만 만들려면 일부 문서 작성 도구를 살펴보고 많은 정보가 필요합니다. 저 밖에. 나는 ApexSQL Doc를 사용하고 있지만 다른 큰 벤더의 다른 인기있는 도구로는 잘못 될 수 없다고 생각합니다.

+0

시험해 보겠습니다. 고마워요! – matt