T-SQL系列之所有数据库备份情况(MSSQL)
2014-08-19 17:15
393 查看
--所有数据库备份情况 set nocount on go declare @counter smallint declare @dbname varchar(100) declare @db_bkpdate varchar(100) declare @status varchar(20) declare @svr_name varchar(100) declare @media_set_id varchar(20) declare @filepath varchar(1000) declare @filestatus int declare @fileavailable varchar(20) declare @backupsize float select @counter=max(dbid) from master..sysdatabases create table #backup_details ( servername varchar(100), databasename varchar(100), bkpdate varchar(20) null, backupsize_in_mb varchar(20), status varchar(20), filepath varchar(1000), fileavailable varchar(200) ) select @svr_name = cast(serverproperty('servername')as sysname) while @counter > 0 begin select @dbname = null , @db_bkpdate = null , @media_set_id = null , @backupsize = null , @filepath = null , @filestatus = null , @fileavailable = null , @status = null , @backupsize = null select @dbname = name from master..sysdatabases where dbid = @counter select @db_bkpdate = max(backup_start_date) from msdb..backupset where database_name = @dbname and type='d' select @media_set_id = media_set_id from msdb..backupset where backup_start_date = ( select max(backup_start_date) from msdb..backupset where database_name = @dbname and type='d') select @backupsize = backup_size from msdb..backupset where backup_start_date = ( select max(backup_start_date) from msdb..backupset where database_name = @dbname and type='d') select @filepath = physical_device_name from msdb..backupmediafamily where media_set_id = @media_set_id exec master..xp_fileexist @filepath , @filestatus out if @filestatus = 1 set @fileavailable = 'available' else set @fileavailable = 'not available' if (datediff(day,@db_bkpdate,getdate()) > 7) set @status = 'warning' else set @status = 'healthy' set @backupsize = (@backupsize/1024)/1024 insert into #backup_details select @svr_name,@dbname,@db_bkpdate,@backupsize,@status,@filepath,@fileavailable update #backup_details set status = 'warning' where bkpdate is null set @counter = @counter - 1 end select substring(servername,0,20) AS [服务器名], substring(databasename,0,20) AS [数据库名], rtrim(ltrim(bkpdate)) AS [备份日期], rtrim(ltrim(backupsize_in_mb)) AS [备份大小], rtrim(ltrim([status])) AS [备份状态], substring(rtrim(ltrim(filepath)),0,40) AS [备份文件路径], rtrim(fileavailable) AS [备份文件是否可用] from #backup_details where databasename not in ('tempdb','northwind','pubs') drop table #backup_details set nocount off go
相关文章推荐
- T-SQL系列之查看所有数据库大小、恢复模式等信息(MSSQL)
- 简单T-Sql备份所有数据库
- 自动备份所有数据库的SQL
- SQL查看当前数据库所有请求的情况,包括登录用户,登录时间,连接数目
- 一个查看MSSQL数据库中所有表信息的SQL语句
- SQL Server Reporting Service 报错:报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥,必须还原备份密钥或删除所有加密的内容。
- T-SQL系列之查看各个数据库性能负载(MSSQL)
- SQL备份所有数据库脚本
- 【数据库SQL实战】获取所有部门当前manager的当前薪水情况
- 一个查看MSSQL数据库中所有表信息的SQL语句
- MSSQL-用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
- SQL备份所有数据库脚本
- T-SQL系列之性能统计信息/数据库IO(MSSQL)
- [置顶]一个查看MSSQL数据库中所有表信息的SQL语句
- 常用SQL:看全部表的空间大小|tempdb使用情况|清空日志|查看日志|查看数据库表|禁用所有约束|系统表|系统视图
- SQL备份所有数据库脚本
- SQL Server Reporting Service 报错:报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥,必须还原备份密钥或删除所有加密的内容。
- 【数据库SQL实战】找出所有员工当前具体的薪水情况
- 读数据库所有表和表结构的sql语句了(mssql)
- Scripts:报告数据库中所有数据文件使用情况dba_files_all.sql