I recently had to root out the cause of intermittent ODBC errors in a 12 year old SQL Based application. The culprit turned out to be this statement at the end of one of the stored procedures:
DUMP TRAN NotTheRealDBName WITH NO_LOG
I wasn’t familiar with this command, so I did some research and found that it makes a backup of the transaction log. I believe this would only be useful if you at some point restored the transaction log, which didn’t seem to be happening. The stored procedure in question was a simple sequence of inserts, updates, selects, and deletes on various tables.
I’m trying to imagine why one would want to backup and restore the transaction log in the middle of business logic, but I can’t get my mind around it. Can anyone give me an example of an efficacious use of DUMP TRAN?
They key part is that the program also adds the WITH NO_LOG clause. So basically it truncates the log. Probably 12 years ago the author had run into log growth issues, ‘thoroughly’ researched the issue and concluded that the best avenue is to truncate the log whenever he was doing some lengthy updates. Nevermind that in the process he breaks the backup chain of any maintenance plan…