SQL Server 2008 Express自动备份方法?

时间:2014-04-07 14:16:02

标签: sql-server-2008 sql-server-2008-express

我想问一下SQL Server 2008 Express Editition的可用自动备份方法。 我在其他服务器上尝试过Replication方法,但Express Edition不提供。 请帮助,我搜索了很多解决方案,但没有找到。 非常感谢

1 个答案:

答案 0 :(得分:0)

最后我找到了一个解决方案......非常简单实用。

创建以下文件:“SQL_StoredProcedure.sql”

USE MyDBName
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- ============================================= 
create PROCEDURE [dbo].[mysp_BackupDb]  
       @dbName sysname, @backupTypeToRun CHAR(1) 
AS 
BEGIN 
       SET NOCOUNT ON; 

       DECLARE @sqlCommand NVARCHAR(1000) 
       DECLARE @dateTime NVARCHAR(20) 

       SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','-') +'-' +
       REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')  

       DECLARE @databaseFileName NVARCHAR(200)
       SET @databaseFileName = replace(@dbName,']','')
       SET @databaseFileName = replace(@databaseFileName,'[','')

       IF @backupTypeToRun = 'F' 
               SET @sqlCommand = 'BACKUP DATABASE ' + @dbName + 
               ' TO DISK = ''D:\DBBackup\DBs\' + @databaseFileName + '_Full_' + @dateTime + '.BAK''' 

       IF @backupTypeToRun = 'D' 
               SET @sqlCommand = 'BACKUP DATABASE ' + @dbName + 
               ' TO DISK = ''D:\DBBackup\DBs\' + @databaseFileName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL' 

       IF @backupTypeToRun = 'L' 
               SET @sqlCommand = 'BACKUP LOG ' + @dbName + 
               ' TO DISK = ''D:\DBBackup\DBs\' + @databaseFileName + '_Log_' + @dateTime + '.TRN''' 

       EXECUTE sp_executesql @sqlCommand 
END 

创建以下文件:“BackupScript.sql”

Use master
Exec mysp_BackupDbMaster 'MyDBName', 'F';
Go

现在你拥有一切。只需在 Windows任务计划程序中创建一个任务即可 在任务本身 - >行动 - >开始计划 - >编辑,使用以下输入:

程序/脚本: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE 添加arguemtns: -S MyServer\MySQlInstant -E -i D:\DBBackup\BackupScript.sql