一次性備份SQL Server中所有的資料
本文原始來自網上一篇文章,不過原始的儲存過程有些問題,本文經過驗證並進行了進一步的修正,增加了備份的時候自動增加備份日期,文章內容如下:
備份處理的儲存過程
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
/*--備份所有資料庫
備份的檔名為資料庫名+日期+.bak
將所有的使用者資料庫(或指定的資料庫列表)
備分到指定的目錄下.
/*--呼叫示例
--備份所有使用者資料庫
exec p_backupdb @bkpath='D:\',@dbname=''
--備份指定資料庫
exec p_backupdb @bkpath=D:\',@dbname='資料庫名稱'
--*/
create proc [dbo].[p_backupdb]
@bkpath nvarchar(260)='D:\', --備份檔案的存放目錄,不指定則使用SQL預設的備份目錄
@dbname nvarchar(4000)='' --要備份的資料庫名稱列表,不指定則備份所有使用者資料庫
as
declare @sql varchar(8000)
DECLARE @strdate NVARCHAR(200)
set @strdate = convert(NVARCHAR(10),getdate(),120)
set @strdate = REPLACE(@strdate, '-' , '')
--檢查引數
if isnull(@bkpath,'')=''
begin
select @bkpath=rtrim(reverse(filename)) from master..sysfiles where name='master'
select @bkpath=substring(@bkpath,charindex('\',@bkpath)+1,4000)
,@bkpath=reverse(substring(@bkpath,charindex('\',@bkpath),4000))+'BACKUP\'
end
else if right(@bkpath,1)<>'\' set @bkpath=@bkpath+'\'
--得到要備份的資料庫列表
if isnull(@dbname,'')=''
declare tb cursor local for
select name from master..sysdatabases where name not in('master','tempdb','model','msdb')
else
declare tb cursor local for
select name from master..sysdatabases
where name not in('master','tempdb','model','msdb') and(name like '%'+@dbname+'%')
--備份處理
open tb
fetch next from tb into @dbname
while @@fetch_status=0
begin
set @sql='backup database '+@dbname
+' to disk='''+@bkpath+@dbname +'_'+@strdate
+'.bak'' with format'
exec(@sql)
fetch next from tb into @dbname
end
close tb
deallocate tb
go
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-625025/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份SQL Server資料庫SQLServer資料庫
- SQL Server資料庫備份SQLServer資料庫
- SQL Server 查詢資料庫中所有的表名及行數SQLServer資料庫
- sql server 資料庫備份方案SQLServer資料庫
- MS SQL Server 資料庫備份方法SQLServer資料庫
- 刪除sql server資料庫中所有資料SQLServer資料庫
- SQL Server 資料備份儲存過程SQLServer儲存過程
- 備份和恢復SQL Server資料庫SQLServer資料庫
- 細說SQL Server資料庫備份方法SQLServer資料庫
- SQL SERVER備份資料庫檔案(使用SSMS)SQLServer資料庫SSM
- SQL Server 資料庫備份還原和資料恢復SQLServer資料庫資料恢復
- SQL Server 備份策略SQLServer
- SQL Server 冷備份SQLServer
- Jtti:sql server怎麼增量備份資料庫JttiSQLServer資料庫
- SQL Server 2008 完整資料庫備份SQLServer資料庫
- SQL Server資料庫備份保護的關鍵UMSQLServer資料庫
- SQL Server 2008還原資料庫備份SQLServer資料庫
- SQL Server 2008 建立完整資料庫備份SQLServer資料庫
- SQL Server資料庫在ASP.NET中的備份SQLServer資料庫ASP.NET
- SQL Server資料庫備份出錯及應對措施SQLServer資料庫
- SQL SERVER 2000 資料庫備份與還原SQLServer資料庫
- SQL Server資料庫 bcp匯出備份檔案應用SQLServer資料庫
- SQL Server 2005 自動遠端資料庫備份SQLServer資料庫
- [Sql server]資料庫備份的三個恢復模型(轉)SQLServer資料庫模型
- SQL Server2019資料庫備份與還原指令碼,資料庫可批量備份SQLServer資料庫指令碼
- SQL Server 備份遷移策略SQLServer
- SQL Server定期自動備份SQLServer
- 查詢某資料庫中所有的欄位資料庫
- 通過現有的資料庫備份建立新的資料庫資料庫
- SQL SERVER 2012資料庫自動備份的方法SQLServer資料庫
- SQL Server 2008還原差異資料庫備份SQLServer資料庫
- 關於SQL Server資料庫備份和恢復特性介紹SQLServer資料庫
- 優化SQL Server中的備份優化SQLServer
- SQL備份資料庫程式碼SQL資料庫
- SQL Server 資料庫引擎怎樣記錄完整備份後修改過的資料SQLServer資料庫
- SQL server 2008定期的備份資料庫--差異+完整SQLServer資料庫
- 在SQL Server 2005資料庫中實現自動備份SQLServer資料庫
- 備份和恢復SQL Server資料庫+壓縮ACCESS的類(方法)SQLServer資料庫