--打開進階設定
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
--打開xp_cmdshell擴充存儲過程
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
declare @strdirname varchar(100)
declare @RemotePathstr varchar(100)
declare @LocalPathstr varchar(100)
declare @DBName varchar(100)
set @strdirname=replace(substring(convert(varchar(20),getdate(),120),1,10),'-','') --獲得日期
--啟動computer browser
exec master..xp_cmdshell 'net start "computer browser"'
RECONFIGURE
--添加網絡驅動器映射
exec master..xp_cmdshell 'net use z: //192.168.0.3/F$/DataBase "123456" /user:192.168.0.3/administrator'
--實施備份
create table #資料庫集合
( 資料庫名稱 varchar(50) null )
insert into #資料庫集合(資料庫名稱) values('database1')
insert into #資料庫集合(資料庫名稱) values('database2')
insert into #資料庫集合(資料庫名稱) values('database3')
declare @DataBaseName varchar(255) --定義變量來儲存值
declare mycursor cursor for select 資料庫名稱 from #資料庫集合 --為所獲得的資料集指定遊标
open mycursor --打開遊标
fetch next from mycursor into @DataBaseName --開始抓第一條資料
while(@@fetch_status=0) --如果資料集裡一直有資料
begin
set @[email protected]
set @RemotePathstr = 'Z:/DataBak/'[email protected][email protected]+'.bak' --備份路徑+命名+備份日期
backup database @DBName to [email protected]
--print @RemotePathstr
fetch next from mycursor into @DataBaseName --跳到下一條資料
end
close mycursor --關閉遊标
deallocate mycursor --删除遊标
drop table #資料庫集合
--删除映射
exec master..xp_cmdshell 'net use z: /delete'
--關閉xp_cmdshell擴充存儲過程、進階設定
EXEC sp_configure 'xp_cmdshell', 0
RECONFIGURE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE