看網上的例子寫的sqlserver資料庫備份指令碼,這個指令碼不是很好,不能刪除以前備份的。
declare @currentdatabasename nvarchar(100)
declare @currentbackfolder nvarchar(200)
declare @weekday varchar(20)
declare @currentbackstring nvarchar(2000)
declare @day varchar(20)
--select getdate() as 'current date'
set @day=convert(varchar(100),getdate(),112)
set @weekday = datepart(weekday, getdate())
set @currentbackfolder='d:\test'
--set @currentdatabasename='ceshi'
--+convert(varchar(50),getdate(),112),dbid
--select * from master..sysdatabases where dbid>=7
--weekday 1 表示星期日
if @weekday = '1'
begin
declare tb cursor local for select name from master..sysdatabases where dbid>=7;
open tb
fetch next from tb into @currentdatabasename
while @@fetch_status=0
begin
set @currentbackstring='
use [master]
backup database ['+@currentdatabasename+'] to disk = '''+@currentbackfolder+'\'+@currentdatabasename+'.bak'' with noformat, noinit,name='''+@currentdatabasename+'-'+@day+''',skip, norewind,nounload;';
print @currentbackstring;
exec sp_executesql @currentbackstring;
print '備份資料庫'+@currentdatabasename +'完成';
fetch next from tb into @currentdatabasename
endclose tb
deallocate tb
print '備份所有資料庫完成'
endelse
begin
declare tb cursor local for select name from master..sysdatabases where dbid>=7;
open tb
fetch next from tb into @currentdatabasename
while @@fetch_status=0
begin
set @currentbackstring='
use [master]
backup database ['+@currentdatabasename+'] to disk = '''+@currentbackfolder+'\'+@currentdatabasename+'.bak'' with noformat, noinit,name='''+@currentdatabasename+'-'+@day+'-diff'',differential,skip,
norewind, nounload,retaindays=6;';
print @currentbackstring;
exec sp_executesql @currentbackstring;
print '差異備份資料庫'+@currentdatabasename +'完成';
fetch next from tb into @currentdatabasename
endclose tb
deallocate tb
print '差異備份所有資料庫完成'
end
SQL Server自動備份指令碼
這幾天在給企業培訓時,幫助他們寫了乙個備份的指令碼,留給大家分享吧。此指令碼的目的是,每週日做完全備份,每週一到週六做差異備份,每週的備份寫入到乙個備份裝置當中,備份裝置起名規則為 備份裝置名 週日日期 下週備份再重新備份到乙個新的備份裝置中。此指令碼編寫完以後,可以做成作業,讓它每天自動完成就可以...
SqlServer整庫備份還原指令碼
一。整備資料庫 指令碼分為兩部分,一部分是批處理檔案 dbbak.bat 一部分為sql檔案 dbbak.sql 兩個檔案要放在同乙個目錄下。批處理檔案中為主檔案,真正的資料庫備份操作是在sql檔案中完成的。1.批處理檔案內容 sqlcmd s 192.168.56.36 usa ppassword...
Sqlserver 資料庫 指令碼備份和還原
完全備份 backup database cpas to disk g 20210317 bak cpas bak full.bak with init use master go 宣告變數 declare dbname nvarchar max cpas1 declare dbfullname n...