使用链接字段生成数据库字典的SQL脚本**

时间:2010-05-20 14:47:18

标签: sql sql-server sql-server-2008

我想为SQL Server 2008数据库生成一个数据字典,每个字段都有一行,以及以下列:

TABLE_NAME
FIELD_NAME
DATA_TYPE
link_table(当有问题的字段是外键时)
link_field(当有问题的字段是外键时)

我可以使用下面的SQL脚本获得前3列...... 但我不知道如何获取最后两列外键信息。 INFORMATION_SCHEMA.TABLE_CONSTRAINTS接近,但没有我正在寻找的数据。有人能帮到这一点吗?

 SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS


其次,如果有人对其他字段有任何建议,请发帖。

1 个答案:

答案 0 :(得分:1)

如果列涉及多个关系,则以下查询将复制该列。

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
相关问题