TomSun

享受编程的快乐!Attitude is everything!

导航

SQL 健康报告

Posted on 2005-07-01 14:14  TomSun  阅读(375)  评论(0)    收藏  举报

 

 1SET NOCOUNT ON
 2DECLARE @enter char(2)
 3DECLARE @body AS varchar(8000)
 4DECLARE @sql nvarchar(4000)
 5SET @sql = ''
 6
 7/* 服务器剩余空间 */
 8SET @body  = '服务器剩余空间'+ CHAR(13)
 9CREATE TABLE #t(a varchar(100),m int)
10
11INSERT #t EXEC master..xp_fixeddrives
12SELECT @body = @body + a + ':',@body = @body + CAST(m AS varchar(500)) + 'M'+CHAR(13)
13FROM #t
14
15Truncate table #t
16
17/* 数据库空间使用情况 */
18SET @body = @body + CHAR(13+ '数据库空间使用情况' + CHAR(13
19SELECT 
20 @sql = @sql + 'SELECT name ,size*8/1024 AS size FROM '+ name + '.dbo.sysfiles' + ' UNION ALL '
21FROM master.dbo.sysdatabases WHERE has_dbaccess(name) = 1
22
23SET @sql = LEFT(@sql,LEN(@sql)-10)
24
25INSERT #t EXEC sp_executesql  @sql
26
27SELECT @body = @body + RTRIM(a) + ':',@body = @body + CAST(m AS varchar(500)) + 'M' + CHAR(13
28FROM #t
29
30DROP TABLE #t
31
32/* 发邮件 */
33
34--SELECT @body
35DECLARE @subject varchar(100)
36SET @subject = '服务器健康状态报告 '+CONVERT(varchar(10),getdate(),20)
37EXEC usp_SendMail 'mail@X.com',@subject,@body