1
SET NOCOUNT ON
2
DECLARE @t table(id int IDENTITY,n sysname)
3
DECLARE @i int
4
DECLARE @n sysname
5
DECLARE @sql Nvarchar(4000)
6
DECLARE @cmd varchar(8000)
7
8
INSERT INTO @t(n)
9
SELECT name FROM dbo.sysdatabases
10
WHERE name NOT IN('master','model','msdb','Northwind','pubs','tempdb','tmp')
11
12
SET @cmd = 'DEL E:\backup\sql_data\CompressPack\backupdiff.rar'
13
EXEC master..xp_cmdshell @cmd
14
15
WHILE (SELECT COUNT(*) FROM @t)>0
16
BEGIN
17
SELECT TOP 1 @i = id FROM @t
18
SELECT @n = n FROM @t WHERE @i = id
19
20
SET @sql = ''
21
SET @sql = @sql + N'DECLARE @filename varchar(8000);'
22
SET @sql = @sql + N'DECLARE @rar_path varchar(8000);'
23
SET @sql = @sql + N'SET @rar_Path = ''C:\Progra~1\WinRAR\'';'
24
SET @sql = @sql + N'DECLARE @cmd varchar(8000);'
25
SET @sql = @sql + N'EXEC www_ednchina_com.dbo.usp_backup_database '+@n+',''diff'',@filename output;'
26
SET @sql = @sql + N'SET @cmd = @rar_Path + ''rar a E:\backup\sql_data\CompressPack\backupdiff.rar E:\backup\sql_data\'+@n+'\'' + @filename;'
27
SET @sql = @sql + N'EXEC master..xp_cmdshell @cmd';
28
29
EXEC sp_executesql @sql
30
31
DELETE FROM @t WHERE @i = id
32
END
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32