備份處理的儲存過程
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)='' --要備份的資料庫名稱列表,不指定則備份所有使用者資料庫
asdeclare @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大家有空可以多多關顧我的個人小站:
一次性成功
沒有人能隨隨便便成功 最近察覺到自己思維的乙個誤區,希望實現的目標第一次就成功,順順利利跳過失敗。這是大家都想要的結局,美好的期望總被現實的波浪所淹沒,因為失敗是避免不了的。一次性成功的想法導致焦慮,困惑,自我懷疑,這個時候如果放低要求換個角度思考,第一次失敗又如何,如果失敗了倒下了哪有怎樣?只要自...
集中問題,一次性出擊
在工作中,總會遇到很多的問題,有些時候有些人會找你處理很多的問題,很多的問題甚至與是由於別人導致的,但是卻需要你來處理,這導致你的工作量非常大.於是你會抱怨,你不想為該使用者處理問題,但是當你將問題提交到領導那裡的時候,領導諮詢到底是什麼問題,領導會忽略掉你的情緒,看事實,你忽然發現你只是記得別人有...
一次性密碼本
一 什麼是一次性密碼本 只要通過暴力破解法對金鑰空間進行遍歷,無論是什麼密文總有一天都能夠被破譯,然而,一次性密碼本是個例外。即使用暴力破解法遍歷整個金鑰空間,一次性密碼本也絕對無法被破解。二 一次性密碼本的加密 三 一次性密碼本的解密 四 一次性密碼本是無法破譯的 我們假設對一次性密碼本的密文嘗試...