Sql-Server
維護計劃中的備份名稱
我曾經在我的伺服器上安裝了 SQL Server 2005。在我的維護計劃中,備份名稱格式是這樣的:
mydatabase_backup_yyyymmddhhss.bak
.現在我使用的是 SQL Server 2012,但我得到了完全不同的備份名稱格式。我想使用與 2005 相同的格式名稱。
我怎樣才能做到這一點?
您需要建構一個自定義備份腳本,該腳本使用動態 SQL 來建構 .bak 文件的名稱。維護計劃可以使用“執行 T-SQL 語句任務”項來執行此操作。
T-SQL 看起來像這樣
Select @SQL = 'BACKUP DATABASE [' + @DBName + '] TO DISK = N''' + @Path + '\' + @DBName + '_backup_' + @Date + '.bak'' WITH NOFORMAT, INIT, NAME = N''' + @DBName + '_backup_' + @Date + ''', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10 ' EXEC SP_ExecuteSql @SQLToExecute = @SQL
以下是根據您的格式獲取數據庫備份的腳本。這可以通過 SQL 代理作業來安排
DECLARE @FOLDERPATH VARCHAR(500) DECLARE @FOLDERPATHWITHNAME VARCHAR(500) Declare @NAME Varchar(200) Declare @DATE Varchar(200) Declare @TIME Varchar(200) Declare @TIME1 Varchar(200) ------------------------------------------------------- --JUST NEED TO UPDATE BELOW PATH FOR DB BACKUP LOCATION ------------------------------------------------------- Set @FOLDERPATH = 'D:\Temp\Dsingh\' select @TIME1 = Convert(time, getdate()) select @DATE = (select convert(varchar,getDate(),112)) select @TIME = ((select Convert(Varchar, DATEPART(hh, @TIME1))) + (Select CONVERT(Varchar, DATEPART(ss, @TIME1)))) Select @NAME = 'mydatabase_backup' + '_' + @DATE + @TIME Set @FOLDERPATHWITHNAME = @FOLDERPATH + @NAME + '.bak' EXECUTE master.dbo.xp_create_subdir @FOLDERPATH BACKUP DATABASE [TEST_1_Smarttrack_03202014] TO DISK = @FOLDERPATHWITHNAME WITH NOFORMAT, NOINIT, NAME = @NAME, SKIP, REWIND, NOUNLOAD, STATS = 10