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
/** 过程完成 **/
文章目录