SQL Server 備份到網絡盤網絡映射盤


declare @DBName nvarchar(max)
declare @BakName nvarchar(max)
--在這里修改數據庫名稱
select @DBName='[LFBMP.PO]'
--指定保存路徑\\192.168.100.2\d$\DBBak
select @BakName='\\192.168.100.2\d$\DBBak\aa'+REPLACE(@DBName,'.','_')+Convert(char(10),getdate(),120)+'.bak'
--啟用網絡映射盤,(以下的語句只要執行一次就可以了,以后備份的時候就需要再執行了)
--exec master..xp_cmdshell 'net use \\192.168.1.2\d\DBBak password /user:192.168.1.2\administrator'  --添加映射盤
--exec master..xp_cmdshell 'net use \\192.168.1.2\d\DBBak /delete' ----刪除映射盤
--本地磁盤
--select @BakName='D:\dbbak\'+REPLACE(@DBName,'.','_')+Convert(char(10),getdate(),120)+'.bak'

declare @BakSQL nvarchar(max)
select @BakSQL='Backup Database '+@DBName+' To disk='''+@BakName+''' with init,nounload '
print @BakSQL

exec (@BakSQL)


--啟用xp_cmdshell(exec master..xp_cmdshell報錯就用下面的)
--EXEC sp_configure 'show advanced options', 1;
--RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;
--RECONFIGURE;

  

 

再放一個一次備份多個表的

declare @DBName nvarchar(max)
declare @BakName nvarchar(max)

Declare DBCursor CURSOR 
FORWARD_ONLY READ_ONLY 
For (select '[DB1]' as DBName
union select '[DB2]' as DBName 
union select '[DB3]' as DBName 
union select '[DB4]' as DBName --還有多個數據庫在后面添加
)
open DBCursor
fetch next from DBCursor into @DBName
while (@@fetch_status=0)
    begin
    --print @DBName
    --select @DBName='[LFBMP.PO]'
    --指定保存路徑\\192.168.100.2\d$\DBBak    
    --select @BakName='D:\MSSQLDBBak\BC_'+REPLACE(@DBName,'.','_')+Convert(char(10),getdate(),120)+'.bak'
    select @BakName='\\192.168.100.2\d$\DBBak\'+@DBName+Convert(char(10),getdate(),120)+'.bak'
    declare @BakSQL nvarchar(max)
    --select @BakSQL='Backup Database '+@DBName+' To disk='''+@BakName+''''
    select @BakSQL='Backup Database '+@DBName+' To disk='''+@BakName+'''  with init,nounload '
    print @BakSQL
    exec (@BakSQL)
    fetch next from DBCursor into @DBName
    end
close DBCursor
deallocate DBCursor

--select @DBName='[LFBMP.PO]'
----指定保存路徑\\192.168.100.2\d$\DBBak
----select @BakName='\\192.168.100.2\d$\DBBak\aa'+REPLACE(@DBName,'.','_')+Convert(char(10),getdate(),120)+'.bak'
--select @BakName='D:\MSSQLDBBak\BC_'+REPLACE(@DBName,'.','_')+Convert(char(10),getdate(),120)+'.bak'

--declare @BakSQL nvarchar(max)
--select @BakSQL='Backup Database '+@DBName+' To disk='''+@BakName+''''
--print @BakSQL

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM