代码之家  ›  专栏  ›  技术社区  ›  Albert

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

  •  0
  • Albert  · 技术社区  · 14 年前

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

    表名
    字段名
    数据类型
    链接表(当相关字段是外键时)
    链接字段(当有问题的字段是外键时)

    我可以用下面的SQL脚本获得前3列… 但我不知道如何获取最后两列的外键信息 . information_schema.table_约束越来越接近,但没有我要查找的数据。有人能帮忙吗?

     SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
    


    第二,如果有人对其他有帮助的领域有任何建议,请发表。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Thomas    14 年前

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

    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