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