SQL Server中获取所有数据库名
Select Name FROM Master.dbo.SysDatabases orDER BY Name
方式一(多库备份):
--使用拼凑SQL的方式
DECLARE @SQL VARCHAR(MAX)
SELECT @SQL = COALESCE(@SQL,'') + '
BACKUP DATABASE '+ QUOTENAME(name,'[]')
/* + ' TO DISK = ''D:\'+ name + '_' + CONVERT(CHAR(8),GETDATE(),112) + CAST(DATEPART(hh, GETDATE()) AS VARCHAR) + CAST(DATEPART(mi, GETDATE()) AS VARCHAR) + '.bak' */
+ ' TO DISK = ''E:\cr_backup\DataBack.bak'
+ ''' WITH NOINIT, NOUNLOAD, NAME = N''' + name + '_backup'', NOSKIP, STATS = 10, NOFORMAT'
FROM sys.databases WHERE LOWER(name) IN ('CR_V11_WMS', 'CR_WMSPDA', 'cr_dxp_wms')
PRINT(@SQL)
EXECUTE(@SQL)
方式二(单库带RAR压缩):
USE [CR_YPLS8]
GO
/****** 对象: StoredProcedure [dbo].[JCR_AUTO_BACKUP] 脚本日期: 09/07/2018 17:17:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[JCR_AUTO_BACKUP]
as
/** 开启xp_cmdshell支持 **/
Exec sp_configure 'show advanced options', 1
Reconfigure with override
Exec sp_configure 'xp_cmdshell', 1
Reconfigure with override
Exec sp_configure 'show advanced options', 0
Reconfigure with override
/** 定义参数 **/
Declare
--备份文件存储路径
@FilePath Nvarchar(100),
--数据库备份格式 为 数据库名称_日期(日期格式:20110326).bak
--数据库名称
@DbName Nvarchar(100),
--数据库备份后缀
@FileName Nvarchar(100),
--被压缩文件名称
@BakFile Nvarchar(100),
--压缩文件名称
@RarFileName Nvarchar(100),
--rar文件存放路劲
@RarFilePath varchar(100),
@RarCmd Nvarchar(150),
@Str varchar(100),
@Dir varchar(100)
Set @FilePath = 'I:\CR_BACKUP\'
Set @DbName = DB_NAME()
Set @FileName = convert(varchar(10),getdate(),112)
Set @RarFilePath = 'C:\WinRAR\RAR.exe'
set @BakFile=@FilePath+@DbName+'_'+@FileName+'.bak'
set @RarFileName=@FilePath+''+@DbName+'_'+@FileName+'.rar'
/** 定义完成 **/
/** 删除过期的压缩文件 **/
Set @Dir='Del '+@FilePath+@DbName+'_'+convert(varchar(10),getdate()-10,112)+'.rar'
Exec master..xp_cmdshell @Dir
/** 删除结束 **/
/** 开始完整备份数据库 **/
Set @Str=@FilePath+@DbName+'_'+@FileName+'.bak'
BACKUP DATABASE @DbName TO DISK=@str
WITH RETAINDAYS=15,NOFORMAT,NOINIT,
NAME=N'完整备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
/** 备份完成 **/
/** 开始压缩新备份文件 **/
Set @RarCmd =@RarFilePath+' a -df -ep1 -m5 '+@RarFileName+' '+@BakFile
Exec master..xp_cmdshell @RarCmd
/** 参数说明 **/
/** a:添加文件到压缩文件 -df:压缩后删除文件 -ep1:从名称中排除基本目录 -m5:压缩级别为最大 **/
/** 压缩完成 **/
/** 关闭xp_cmdshell支持 **/
Exec sp_configure 'show advanced options', 1
Reconfigure with override
Exec sp_configure 'xp_cmdshell', 1
Reconfigure with override
Exec sp_configure 'show advanced options', 0
Reconfigure with override
/** 过程完成 **/
评论已关闭