批處理實現SQLServer數據庫備份與還原
--1.數據庫備份腳本sqlserverbackup.sql
-- SQLServer2000數據庫系統清理用戶數據庫日誌和備份用戶數據庫數據腳本
declare @dumpfile varchar(50)
declare @msg varchar(70)
select @dumpfile = 'd:\backup\north' + datename(dw,getdate())+'.bak'
select @msg=convert(char(26),getdate(),9)+'-----正在清理日誌......'
print @msg
backup tran northwind with truncate_only
if (@@ERROR <> 0 )
begin
select @msg=convert(char(26),getdate(),9)+'-----清理日誌失敗或出現異常......'
print @msg
end
else
begin
select @msg=convert(char(26),getdate(),9)+'-----清理日誌完畢......'
print @msg
end
select @msg=convert(char(26),getdate(),9)+'-----開始備份northwind數據庫.....'
print @msg
backup database northwind to disk=@dumpfile
if (@@ERROR <> 0 )
begin
select @msg=convert(char(26),getdate(),9)+'-----備份數據失敗或出現異常'
print @msg
end
else
begin
select @msg=convert(char(26),getdate(),9)+'-----數據庫備份完畢'
print @msg
end
@net start "mssqlserver"
@isql -Usa -Psa -i d:\backup\sqlserverbackup.sql -o d:\backup\sqlserverbackup.out
@echo ……正在備份中……
@pause
--2.數據庫還原腳本sqlserverrestore.sql
declare @dumpfile varchar(50)
declare @msg varchar(70)
select @dumpfile = 'd:\backup\north' + datename(dw,getdate())+'.bak'
select @msg=convert(char(26),getdate(),9)
print @msg
restore database northwind from disk=@dumpfile
if (@@ERROR <> 0 )
begin
select @msg=convert(char(26),getdate(),9)+'-----還原數據失敗或出現異常'
print @msg
end
else
begin
select @msg=convert(char(26),getdate(),9)+'-----數據庫還原完畢'
print @msg
end
--將下面的腳本保存爲: 備份數據庫.bat
@net start "mssqlserver"
@isql -Usa -Padmin -i d:\backup\sqlserverbackup.sql -o d:\backup\sqlserverbackup.out
@echo ……正在備份中……
@pause
--將下面的腳本保存爲:還原數據庫.bat
@echo ******開始還原數據庫*****
@net start "mssqlserver"
@isql -Usa -Psa -i d:\backup\sqlserverrestore.sql -o d:\backup\sqlserverrestore.out
@pause
每天進步一點點...
-------------------------------------------------------------------------------------------------------------------------
原文地址:http://www.cnblogs.com/cyan/archive/2008/08/29/1279311.html