如何用sql查询压缩数据库备份文件

如何用sql查询压缩数据库备份文件,sql,sql-server,batch-file,sql-server-2005,Sql,Sql Server,Batch File,Sql Server 2005,我使用以下查询备份数据库: USE DBName GO DECLARE @FileName VARCHAR(MAX) SET @FileName = 'C:\Backup\SQLDB\DBName_'+ REPLACE(CONVERT(varchar(10),getdate(),103),'/','') + '_' + REPLACE(CONVERT(varchar(10),getdate(),108),':','') + '.Bak' BACKUP DATABASE DBName TO

我使用以下查询备份数据库:

USE DBName
GO

DECLARE @FileName VARCHAR(MAX)

SET @FileName = 'C:\Backup\SQLDB\DBName_'+ REPLACE(CONVERT(varchar(10),getdate(),103),'/','') + '_' + REPLACE(CONVERT(varchar(10),getdate(),108),':','') + '.Bak'

BACKUP DATABASE DBName
TO DISK = @FileName
WITH FORMAT,
NAME = 'Full Backup of DBName'
GO
我使用批处理文件执行此查询,批处理文件按计划任务运行

批处理文件参数:

sqlcmd -d DBName -S .\SQLEXPRESS -I -U DBUserName -P DBUserPwd  
       -i SQL_FileName_with_Extension -o log.txt

它成功地在daily basic上备份了我的数据库,我得到了名为DBName_01082014_131210.bak的备份文件。但它的大小在7GB左右太高了。是否有任何sql查询可以使用上述查询执行,并且可以同时备份和压缩我的数据库?

您可以构建一个.bat文件。将数据库名称存储在变量中,使用sqlcmd备份数据库,备份完成后,使用变量中的db文件名对其进行压缩。

谢谢大家的帮助。我使用了一个名为“SQLBackupMaster”的第三方实用程序来备份、压缩和安排数据库备份。它的免费版本也满足了我的要求。现在我能够每天和每周备份和压缩数据库文件。在SQLServer2005ExpressEdition中,备份和压缩DB文件也能正常工作。谢谢大家的建议。

Hi PRdeep,欢迎来到Stack Overflow。您同时标记了mysql和sql server。它是哪一个?您已经将其标记为mysql和sql server,您真的需要具体说明您想要什么?它是sql server 2005实际上:PSQL 2005不提供本机备份压缩。您需要SQL 2008企业版、SQL 2008 R2标准版或更高版本。对于SQL 2005,您必须在创建备份后对其进行压缩。例如,使用Win-zip或7-zip。是的,这就是我想要的。我能够每天创建.bak文件。但是现在如果我想压缩它,我必须手动完成。我想在db备份时通过命令行自动进行压缩。然而,我可以用7z命令行来实现这一点。但问题是,每天备份文件都以不同的名称创建,并具有日期/时间扩展名。