Automatic SQL Server Database Documentation
Recently, I've been looking for a good way to automatically generate a data dictionary for multiple databases. Some are internally developed, and others are vendor-provided. My company already had licenses for SAP Power Designer, but the reports generated by that software didn't have a great layout for end-users, and reverse-engineering a PDM from a database would choke on the complicated databases with 100+ tables and other objects. I needed an easy way to use a database or SQL script to generate the documentation.
Criteria:
- Open-source is preferred, but not mandatory
- HTML or PDF output
- List basic objects like tables, indexes, and foreign key references to other tables
- Show the details on each object, like datatype and included index columns
- Showing information in extended properties would be nice, but not necessary
- Editing the metadata would not be necessary, as that wouldn't be allowed on vendor db's
- Cross-platform support for MS SQL, DB2, and MySQL
- A wish-list feature would be the ability to include implicit references to other tables, when the columns are used to link two or more tables, but there is not an explicit foreign key relationship. Usually the columns have an identical name, or a naming convention like "ID" in the source table and then "<table>_ID" in the other tables referencing it.
Runner up: Dataedo
This software is not open-source, but it hits all of my criteria, minus the wish-list feature. The only downside is the pricing and the difficulty of getting my work to pay for an enterprise license. I will start the process, but unfortunately I'm not confident it'll get through.Selection for now: Redgate SQL Doc
Although it's not open source, and doesn't have my wish-list feature, this software does almost everything I need. The UI is nice, installation was easy, and my work already has licenses for Redgate products. The one missing criteria is the cross-platform support, but since MS SQL is ~90% of the databases supported, it'll have to be "good enough" for now.
Comments
Post a Comment