Override file while backup database
I want to back up a database using this code
sqlcmd -S servername -Q "BACKUP DATABASE [DBName] TO DISK = 'C:\backup.bak'"
It works. But if the backup file already exists, the data gets appended to the file instead of replacing the file. Every time I call BACKUP DATABASE
the file gets bigger.
Is there an option for BACKUP DATABASE
to force a replace?
sqlcmd -S servername -Q "BACKUP DATABASE [DBName] TO DISK = 'C:\backup.bak' WITH INIT"
INIT
does the trick. From MSDN:
INIT Specifies that all backup sets should be overwritten
WITH INIT
is not enough. Should be WITH INIT, SKIP
these days. Docs
Explanation: INIT
overwrites only if some conditions are met. SKIP
instructs to ignore those conditions.