分享:SQL一鍵備份用戶數據庫

大家都知道,Ms Sql 有自動備份的功能,但如果由于某種原因不能自動備份,或者我們想手動備份的話,就可以用下邊的sql語句來執行備份。

--------------------代碼開始-------------


------刪除舊數據-------------------------------------------------------------
[email protected](100)
[email protected]= CONVERT(VARCHAR(100), GETDATE(),126) -----當前時間

EXECUTE MASTER.dbo.xp_delete_file0,'D:\DataBak','bak',@delTime,1


[email protected](500)
  
[email protected](500) 
 
[email protected](500) 
 
[email protected](500) 
 
[email protected]= 'D:\DataBak\' 
 
[email protected](a INT, b INT, c INT) 
 
[email protected](100) 
 
[email protected]= REPLACE(
REPLACE(
REPLACE(CONVERT(VARCHAR, GETDATE(),120),'-',''),
' ',
''
),
':',
''
) +'.bak' 
 
 
------------遍歷所有用戶數據庫 進行備份-------------------------------------------------------------------
 
 
DECLARE My_Cursor CURSOR --定義游標
FOR
(
SELECT NAME
FROM sys.databases
WHERE NAME NOT IN ('master','msdb','tempdb','model',
'ReportServerTempDB','ReportServer')
) --查出需要的集合放到游標中
OPEN My_Cursor; --打開游標
FETCH NEXT FROM My_Cursor [email protected]; --讀取第一行數據
WHILE @@FETCH_STATUS=0
BEGIN
[email protected][email protected][email protected]
 
[email protected]='mkdir '[email protected]創建備份目錄
EXEC [email protected],
no_output
 
[email protected][email protected]+'\' + @FILENAME + ''
 
BACKUP [email protected] DISK [email protected]
 
FETCH NEXT FROM My_Cursor [email protected]; --讀取下一行數據
END
CLOSE My_Cursor; --關閉游標
DEALLOCATE My_Cursor; --釋放游標
 
 
PRINT'-----------備份完成---------------------'+ CONVERT(VARCHAR(100), GETDATE(),126)+'---------------'
 
--------------------代碼結束-------------



發布時間:2015/8/5 12:48:56 查看次數:2803