(click me

Click the flower and I'll play the banjo for you!

more photos 1  2  3  4  5  6

contact information:

SQL2000 Index

 Bill Wunder's DDL Archive Utility

the latest version

Complete Online Help

The Archive Utility FAQ

Download the latest version of Bill Wunder's DDL Archive Utility for evaluation or upgrade to the above release if you have previously downloaded the utility at www.sqlservercentral.com. I think you can still get the utility at www.sqlservercentral.com but I'm not having much luck making a newer version available from there (hopefully I didn't offend anyone). If you have an older version installed, be sure to uninstall it before you install the latest build. Uninstalling will not affect your configuration or your SourceSafe files.

2-1-2004 - Users running only SQLXML 3.0 SP1 or SP2 must configure the SqlXml assembly to allow the Archive Utility application to use the upgraded assembly version. Alternately, users running SP2 can install the latest version of the DDL Archive Utility and may also want/need to remove any previous versions from the .Net assembly cache on the Archive Utility host machine. See Using The .Net Framework 1.1 Configuration Tool - A DBAs window into the Global Assembly Cache for additional information.

3-23-2004 - two users reported an "unhandled exception" error at application startup. I could not reproduce the problem but added error handling to the code that uses the SQLDMO.Application through the .Net generated INTREROP.SQLDMO Assembly to load the list box with available SQL Server instance names. From VB Script both users were able to access and use the SQLDMO.Namelist via the Scripting Host however through the .Net INTEROP assembly it was determined that the error, "Query Interface for interface SQLDMO.NameList failed" was caught. I modified the list box population box to bail out of the attempt to load the list box and just allow the user to type in server names if this error occurs. This seems to have both people able to generate an archive. (v 4.2.2)

4-10-2004 - A problem has been reported that prevents a successful install of the utility if SourceSafe is not installed in the default location. I'm changing this so that the utility will install without SourceSafe, the SQL Client Utilities, or SQLXML installed and will instead give you run time errors that should make it clear what the problem is if any of these items are missing.

known bug list:

Bug: Previous version is not uninstalled when installing a new version.

Workaround: Uninstall the previous version  before installing the latest release.

Bug: Sometimes during delete processing files in a collection are deleted from SourceSafe that still exist in the SQL Server Database. Seems to happen to all the files in the current collection in alphabetical order after multiple deletes from that collection. For example if you delete the stored procedures "dbo.proc1" and "dbo.proc2" from SQL Server database A, you may see that "dbo.proc3.PRC" and "dbo.zzproc.PRC" are also logically deleted from SourceSafe and and logged to ArchUtilChanges table as deleted even though the procedures "dbo.proc3" and "dbo.zzproc" still exist in the database being archived.

Workaround: During the next execution of the Archive Utility the incorrectly deleted files will be recovered.

Bug: The error "Object Reference not set to an instance of an Object" may be logged to the Application Event log of the Archive Utility host machine. I have only seen this from ArchCon.EXE.

Workaround: none needed. I don't believe this error has any effect on the proper operation of the utility.

Bug: The procedures created in instArchUtil.sql may include references to to my implementation of SMTP email that replaces xp_send mail.

You can add the SMTP email subsystem by following these guidelines or you can replace the reference to sysmon.dbo.safe_sendmail with a master.dbo.xp_sendmail if you prefer to stick with the MAPI email implementation included with SQL server

Article Archive

SQL Server 2000 for the DBA

T-SQL Tool House 
The SQL Thing that Wouldn’t Grow
Free Space Monitoring Tool
Current Activity from Query Analyzer
Are They Really Using All Those Stored Procedures?
Free Tools to Automate DDL Capture and SQL Server to SourceSafe Integration
Resolving Blocking Problems
ActiveX for Database Administration
What's Hot in Your Query Analyzer? (You Get 10 T-SQL Shortcuts in QA. Are you using your's?)
Moving a SQL Server when Maximum Uptime Matters
Working with DBCC INDEXDEFRAG (Minimize Log Growth and Selectively Manage Fragmentation)
How to Backup and Recover EM & QA Settings (Registry Tips)
SQL Server Informational Output Every DBA Should Known About (A Few File System Easter Eggs)
Working with Direct Attached Storage Devises ('Rule of Thumb' RAID Configurations) 
Writing Reusable Migration and Change Scripts
SQL Glue: DTS for the DBA

System Tables and System Functions

Getting More From the SQL Agent
Making the best of sp_monitor
Writing Reusable Migration and Change Scripts (Add power to LifeCycle Promotion Scripts)
Benchmarking Techniques using T-SQL Part 2: Performance Counters via sysperfinfo
Benchmarking Techniques Using T-SQL Part 1 - System Statistical Functions
Working with Linked Servers (Tools and System Procedures to Make your Server a Better Client)
Working with System Tables - Beyond the Basics 
Working with System Tables - Metatdata hierarchies

Log Shipping with SQL LiteSpeed

Heavy Duty LiteSpeed Log Shipping Part 1
Heavy Duty LiteSpeed Log Shipping Part 2
Heavy Duty LiteSpeed Log Shipping Part 3
Heavy Duty LiteSpeed Log Shipping Part 4
Heavy Duty LiteSpeed Log Shipping Part 5

Replacing SQL Mail

Take My SQLMail, Please! MAPI Based Email is Dead
From xp_sendmail to safe_sendmail A Portable and Extensible SQL Server Email Subsystem
From xp_sendmail to xp_smtp_sendmail Implementing the Best Available  SQL Server SMTP Email Tool Available as a full functional replacement to xp_sendmail
From SQLMail to SMTP in the SQLAgent Using the Portable Email System to Completely Replace SQLMail

Database Development

Hitting the Ground Running with Reporting Services (The Best Thing Since...)  
Transactional Meditation: T-SQL Commitment Control  (The Perfect Transaction does Not Live in SQL Server)
Checksum and Distributed Query Performance
sp_depends - Don’t stake your project maintenance on it!
Automation and T-SQL

.Net for the DBA

Bill Wunder’s DDL Archive Utility meets VB.Net
Using the SQLDataAdapter and the SQLXMLAdapter in a VB.Net Application – Part 1
Using the SQLDataAdapter and the SQLXMLAdapter in a VB.Net Application – Part 2
Using The .Net Framework 1.1 Configuration Tool - A DBAs window into the Global Assembly Cache

Data Architecture

Working with Visio Professional (Reverse Engineering a Database Diagram
Retrofitting Table Level Delete/Archive Strategies - Unbounded Table Growth by Design
Retrofitting Table Level Delete/Archive Strategies - Classifications of Logging Tables
Retrofitting Table Level Delete/Archive Strategies - Short Term Storage Models
Retrofitting Table Level Delete/Archive Strategies - Moderately Complex Storage Models
Retrofitting Table Level Delete/Archive Strategies - Updatable Partitioned Storage Models
SQL Darwinism: On SQL Server Baselines, Metrics Collection and Trend Analysis

SQL Server 2005

The Birth of YUKONJACK
Try and Catch the Wind - Further Adventures of YukonJack
The AdventuresWorks of Yukon Jack (Using Visio to Visualize Schema Separation)

Random Thoughts

Personal Heroics and the Software No-Life Cycle
A Tuple By Any Other Name Would Smell as Sweet (Everybody Has the Best Database)
The True Test of a Good DBA


SQL Server 2000 Script Library - (full - slightly descriptive - listings)


The following links take you to some older web pages: ?bill's vast expanse. (On the public access nyx net servers.)  

Microsoft SQL Server 7 Tools  
  • Database Change Control - OLE Automation SQL Scripts and guidelines for version control of SQL Server tables, procedures, and scheduled jobs.
  • Finding Dependencies - It is very important to identify all the impact a change to a stored procedure or table may have on the application as a whole, but it's not an easy thing to do.
  • T-SQL Coding Standard - Every shop should have one. This is just a sample and should by all means be used only as a starting point for a T-SQL coding standard that is right for your shop.


Microsoft SQL Server 6.5 Tools
  • The admin subsystem - the original data driven administration toolkit, from soup to nuts.
  • Index Maintenance - several approaches for eliminating the fragmentation that will naturally occur in a changing dataset to keep your database running at it's peak.
  • Running a Standby Server - log shipping for the times before there was log shipping.

© Bill Wunder 1995-2006 All rights reserved