分享: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 查?#21019;?#25968;:2498