SQL-скрипт для создания словаря базы данных ** со связанными полями ** - PullRequest
0 голосов
/ 20 мая 2010

Я хотел бы создать словарь данных для базы данных SQL Server 2008, в которой есть по одной строке для каждого поля и следующие столбцы:

table_name
field_name
тип_данный
link_table (для случая, когда рассматриваемое поле является внешним ключом)
link_field (для случая, когда рассматриваемое поле является внешним ключом)

Я могу получить первые 3 столбца с чем-то вроде скрипта SQL ниже ... , но я не знаю, как получить последние два столбца информации о внешнем ключе . INFORMATION_SCHEMA.TABLE_CONSTRAINTS приближается, но не имеет данных, которые я ищу. Может кто-нибудь помочь с этим пунктом?

 SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS


Во-вторых, если у кого-то есть какие-либо предложения по дополнительным полям, которые будут полезны, пожалуйста, напишите.

1 Ответ

1 голос
/ 20 мая 2010

Следующий запрос дублирует столбец, если он участвует в нескольких отношениях.

Select C.TABLE_SCHEMA, C.TABLE_NAME, C.COLUMN_NAME, C.DATA_TYPE
    , PKCol.TABLE_SCHEMA, PKCol.TABLE_NAME, PKCol.COLUMN_NAME
From INFORMATION_SCHEMA.COLUMNS As C
    Left Join (INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE As FKCol
        Join INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS As FK
            On FK.CONSTRAINT_NAME = FKCol.CONSTRAINT_NAME
        Join INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE As PKCol
            On PKCol.CONSTRAINT_NAME = FK.UNIQUE_CONSTRAINT_NAME)
        On FKCol.TABLE_SCHEMA = C.TABLE_SCHEMA
            And FKCol.TABLE_NAME = C.TABLE_NAME
            ANd FKCol.COLUMN_NAME = C.COLUMN_NAME
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...