以前使用mssql的备份语句的时候都是以当前时间作为文件名,这样每次备份都产生不同的文件,就不会遇到追加和覆盖备份的问题。而现在需要在一个指定的文件名中进行备份,会发现每次备份后文件体积会越来越大。这是因为每次备份默认都是追加的,保留了历史备份。
在management studio中操作备份时可以在选项中更改追加或覆盖,而在程序中使用BACKUP DATABASE语句备份时可以使用WITH INIT | NOINIT来指定是否覆盖。init表示覆盖,noinit追加。
例如:
BACKUP DATABASE WMSDB TO DISK = 'C:\Tomcat\temp\WMSDB.BAK' WITH INIT
参考http://technet.microsoft.com/zh-cn/library/ms186865(SQL.105).aspx