ApexSQL Doc: SQL Server Documentation Tool

The Command Line Interface

Everything you are able to do via the ApexSQL Doc Gui, you can also do via the Command Line Interface. Meanwhile I’ve become a huge fan of this functionality in the ApexSQL tools. You can schedule jobs to run such Command Line tasks for off-peak hours and the next morning when you come to the office you have the results ready for examination. One possible purpose I see in our shop for such Command Line documentation jobs are when we push code from the acceptance environment to the production environment. Right after this regularly occurring event, documentation isn’t up-to-date anymore and a scheduled documentation task would solve this problem.

Here are some examples of Command Line usage (taken from the ApexSQL Doc Help file):

Documenting database pubs on server CS:
ApexSQLDoc /s:CS /d:pubs

Documenting only tables and views of database tf on server CI:
ApexSQLDoc /s:CI /d:tf /o:12

Loading selection profile and documenting database tf on server CI:
ApexSQLDoc /s:CI /d:tf /i:selection_profile.xml

Creating a CHM file with the name: 10_10_2006.servername.file01.chm
ApexSQLDoc /s:CI /d:northwind /on:{date}.{servername}.file01 /of:chm

Documenting northwind database on server CS displaying the TSQL code highlighted (colorized):
ApexSQLDoc /s:CS /d:northwind /of:chm /oi:h

Documenting northwind database on server CI displaying the Extended Properties:
ApexSQLDoc /s:CI /d:northwind /oi:iep

Documenting pubs database on server CS displaying the following datatype options: DDL, dependencies and properties. ApexSQLDoc /s:CS /d:pubs /dto:dd de pr

Don’t worry about the rather cryptic switches. They are all pretty well explained in the products help file.

Conclusion

ApexSQL Doc is the first documentation tool I’ve ever used and, to be honest, I’m quite amazed at the output it produces. So far documentation to me was printing out some table definitions, probably a diagram and maybe some code for crucial procedures. This, along with some writing thrown in between was documentation to me. And actually I believe I’m not the only one thinking this way. I’ve been handed out such “documentation” by vendors who did contractual development for us and received a whole lot of money for their work. Now that I know, and actually have seen it myself, that it’s quite a breeze to produce sophisticated and complete database documentations, I’ve massively raised my own level of expectations on future individual software documentations to come

]]>

Leave a comment

Your email address will not be published.