您是否生成了数据字典?如果是这样,怎么样?
我在SQL Server 2005中使用扩展过程来保存表和字段信息。我有一些查询可以创建一个字典,但它是......嗯。您是否使用了特定的查询或工具?你是从数据库图表中生成的吗?
谷歌搜索“数据字典sql服务器”提出了许多查询,但它们都同样具有吸引力。也就是说,良好的起点,但不准备生产。
答案 0 :(得分:6)
最近我有一个任务来记录一个相当大的数据库(大约500个对象),我在这里找到的细节确实有帮助。
以下是关于我们如何实现这一点的一些反馈 - 希望有人会发现它很有用,即使它已经很晚了。
技术:
记录的内容:
所有表格和一些列(我们为所有表格添加了很好的描述,以确保明确表格的内容)
所有观点 - 有关创建视图的原因,数据中包含哪些表格以及何时使用
所有存储过程 - 在整个过程中我们发现我们有很多重复的存储过程(开发人员没有看到proc是否存在所以他们创建了新的过程)
所有UDF和其他一些对象,但不是全部(我们实际上不需要记录触发器)
我们最终做的是让我们的DBA拒绝来自开发人员的所有DDL更新,除非有扩展属性。
我们还有一项计划任务,即每两周自动重新创建一次文档。
答案 1 :(得分:5)
答案 2 :(得分:4)
SchemaSpy是一个非常好的工具,可以对数据库的描述进行反向工程。这包括:
答案 3 :(得分:2)
我使用此工具(开源):http://www.codeplex.com/datadictionary。 我创建的所有信息都会添加到数据库的扩展属性中。
答案 4 :(得分:1)
我是从INFORMATION_SCHEMA
个视图以及其他特定于应用程序的元数据表生成的。
我还使用INFORMATION_SCHEMA.ROUTINES
的通配符搜索来跟踪代码中的使用模式,并识别未使用的列和表。
这篇文章刚出现在我的一条新闻Feed中:http://www.mssqltips.com/tip.asp?tip=1619
答案 5 :(得分:0)
我们在应用程序的开发者端生成数据库的字典。我们使用ADODB连接+ ADOX对象和集合有一个很好的过程。此过程将浏览数据库中的所有表。收集了以下主要数据:
您还可以跟踪字段默认值等。
然后可以例如:
currency_id
(主要关键词
Tbl_currency
表格被引用,
如果每个参考完整性
时间得当实施(我们非常
经常创造没有的领域
实施相应的规则
...)。description
”
字段)具有类似的数据
类型/大小。没有什么是令人沮丧的
在表中有item_Description nvarchar(50)
字段,以及a
document_Description ntext
在另一个
表<!/ LI>
通过该过程提取的所有数据都插入到本地表中(可以是XML文件或其他任何内容)并保存以供进一步使用。
可以通过
从此数据生成列字典/报告SELECT DISTINT columnName FROM Tbl_Column
答案 6 :(得分:0)
我个人更喜欢在设计数据库时创建数据字典。当然,这并不总是一种选择......
我认为答案取决于数据库的当前状态?是完成还是生产?你还没开始吗? (等)
过去,像Cade Roux一样,我已将INFORMATION_SCHEMA中的信息提取到访问数据库中。目前,我们开发人员偶尔会将有关不同表,列,存储过程,函数等的信息添加到Access数据库中。在Access数据库中,我们创建了报告以输出整洁的“数据字典”打印输出。
这不是完成创建数据字典的最有效方法,但鉴于该项目已经用了3年而没有任何数据字典的迹象,这就是我们必须要做的事情。
所以最终,答案取决于你的数据库的状态。
最诚挚的问候,
弗兰克
答案 7 :(得分:0)
我们编写了自己的使用扩展属性的数据字典实用程序,但是当我们找到Redgate的工具时,我们放弃了它的工具。为我们工作很棒!我想这有助于我们在扩展属性中已经有了字段和表格描述。不是为公司做广告,但他们有14天免费试用。值得一看。 http://www.red-gate.com/products/SQL_Doc/index.htm
答案 8 :(得分:0)
我对SQL Data Dictionary祝你好运。