Sql server 您是否生成数据字典?

Sql server 您是否生成数据字典?,sql-server,code-generation,data-dictionary,Sql Server,Code Generation,Data Dictionary,您是否生成数据字典?如果是,怎么做 我使用SQLServer2005中的扩展过程来保存表和字段信息。我有一些查询可以用它们创建字典,但它是。。。无聊的。您是否有使用的特定查询或工具?您是否根据数据库图表生成它 谷歌搜索“数据字典sql server”时会出现许多查询,但它们都同样吸引人。也就是说,良好的起点,但尚未准备好生产。我从信息_SCHEMA视图以及其他特定于应用程序的元数据表生成它 我还使用INFORMATION\u SCHEMA.ROUTINES的通配符搜索来跟踪代码中的使用模式,并识

您是否生成数据字典?如果是,怎么做

我使用SQLServer2005中的扩展过程来保存表和字段信息。我有一些查询可以用它们创建字典,但它是。。。无聊的。您是否有使用的特定查询或工具?您是否根据数据库图表生成它


谷歌搜索“数据字典sql server”时会出现许多查询,但它们都同样吸引人。也就是说,良好的起点,但尚未准备好生产。

我从
信息_SCHEMA
视图以及其他特定于应用程序的元数据表生成它

我还使用
INFORMATION\u SCHEMA.ROUTINES
的通配符搜索来跟踪代码中的使用模式,并识别未使用的列和表


这篇文章刚刚出现在我的一个新闻提要中:

我们在应用程序的开发人员端生成数据库的措辞。我们有一个很好的过程,使用ADODB连接+ADOX对象和集合。此过程将浏览数据库中的所有表。收集了以下主要数据:

  • 表名
  • 列名
  • 柱型
  • 圆柱尺寸
  • bool_ColumnistPrimaryKey
  • bool_列具有引用整合约束
  • 您还可以跟踪字段默认值等

    然后,例如,可以:

    • 检查我的字段中有多少表
      currency\u id
      (货币的主键
      Tbl_货币
      表)被引用, 如果引用完整性是每个 时间得到了适当的落实(我们非常重视) 通常创建字段时不使用 执行相应的规则 …)
    • 确保相似的字段 逻辑类型(如“
      说明
      ” 字段)具有相似的数据 类型/尺寸。没有什么比这更令人沮丧的了 表中有
      项描述nvarchar(50)
      字段,以及
      document\u Description ntext
      在另一个文档中 桌子
    • 等等
    通过该过程提取的所有数据都插入到本地表中(可以是XML文件或其他文件),并保存以供进一步使用

    可通过以下方式从该数据生成列词典/报告:

    SELECT DISTINT columnName FROM Tbl_Column
    

    就我个人而言,我更喜欢在设计数据库时创建数据字典。当然,这并不总是一个选项

    我认为答案取决于数据库的当前状态?它已经完成并投入生产了吗?你还没有开始吗?(等等)

    在过去,像Cade Roux一样,我将信息从信息模式拉入access数据库。目前,我们有开发人员偶尔向Access数据库添加有关不同表、列、存储过程、函数等的信息。在Access数据库中,我们创建了报告以输出外观整洁的“数据字典”打印输出

    这不是完成创建数据字典的最有效方法,但考虑到该项目已经三年没有任何数据字典的迹象,这就是我们必须做的

    因此,最终的答案取决于数据库的状态

    致以最诚挚的问候,
    Frank是一个非常好的工具,可以对数据库的描述进行反向工程。这包括:

    • ERD
    • 表、列和约束的列表
    • 关于数据库异常的一组警告(例如,没有索引的表)

      • 我们使用扩展属性

        要阅读它们,我们使用 这让事情变得容易多了


        我们也使用红门SQL文档

        我们编写了自己的数据字典实用程序,使用扩展属性,但当我们找到红门的工具时,我们放弃了它,转而使用他们的工具。为我们工作得很好!我想我们在扩展属性中已经有了字段和表的描述,这会有所帮助。不是为一家公司做广告,但他们有14天的免费试用期。值得一看

        我使用这个工具(开源):。
        我创建的所有信息都会添加到数据库的扩展属性中。

        最近,我有一项任务,要记录一个相当大的数据库(大约500个对象),我在这里找到的详细信息非常有用

        下面是一些关于我们如何实现这一点的反馈——希望有人会发现它很有用,即使已经很晚了

        技术:

        • 所有对象中的扩展属性+生成文档
        记录的内容:

        • 所有表和一些列(我们为所有表添加了良好的描述,以确保清楚地了解表的内容)

        • 所有视图–关于创建视图的原因、数据中包含哪些表等以及何时使用的说明

        • 所有存储过程–在执行该过程时,我们发现有许多重复的存储过程(开发人员不必费心查看proc是否存在,所以他们创建了新的存储过程)

        • 所有UDF和其他一些对象,但不是全部(我们实际上不需要记录触发器)

        我们最终要做的是让DBA拒绝来自开发人员的所有DDL更新,除非有扩展属性


        我们还有一项计划任务,每两周自动重新创建一次文档。

        我很幸运。

        我以前也有一个BBC;-}您可以使用简单的sql语句生成数据字典。您可以在此处找到exapmle。您可以在此处搜索工具:。相当多的数据字典工具。