--方法2.指令碼複製usemastergo
ifexists(select*fromdbo.sysobjectswhereid=object_id(n'[dbo].[sp_proccopydb]')andobjectproperty(id,n'isprocedure')=1)dropprocedure[dbo].[sp_proccopydb]go
/*--資料庫自動複製
將指定前緣的資料庫,複製為乙個以當前月份+1為庫名的資料庫中,並且清除所有的資料例如,資料庫前緣為pos,當前日期為2005-3-27則要求複製資料pos200503為pos200504,並且清空裡面的資料
用生成源庫指令碼的方法實現好處是速度快,不需要考慮源資料庫的資料但如果要保留源資料庫的部分資料,則要專門做資料複製處理
--執行需求需要如下兩個檔案,可以在sql安裝盤x86/upgrade目錄下找到scptxfr.exescptxfr.rll
將其複製到下述目錄%systemroot%ystem32/--鄒建2005.03(引用請保留此資訊)--*/
/*--呼叫示例
--複製po***ecsp_proccopydb'pos'--*/
--1.master資料庫中建立乙個處理的儲存過程,實現當月資料庫到下月資料的自動複製
/*--系統需求需要如下兩個檔案,可以在sql安裝盤x86/upgrade目錄下找到scptxfr.exescptxfr.rll
將其複製到下述目錄%systemroot%ystem32/--*/
createprocsp_proccopydb@db_headsysname=n'' --資料庫字首asdeclare@sdbnamesysname,@ddbnamesysnamedeclare@snvarchar(4000),@bkfilenvarchar(1000)
--複製的源庫名及目標庫名select@sdbname=@db_head+convert(char(6),getdate(),112),@ddbname=@db_head+convert(char(6),dateadd(month,1,getdate()),112)
ifdb_id(@sdbname)isnullbeginraiserror(n'源資料庫"%s"不存在',1,16,@sdbname)returnend
ifdb_id(@ddbname)isnotnullbeginraiserror(n'目標資料庫"%s"已經存在',1,16,@ddbname)returnend
--臨時備份檔案名selecttop1@bkfile=rtrim(reverse(filename))frommaster.dbo.sysfileswherename=n'master'select@bkfile=stuff(@bkfile,1,charindex('/',@bkfile),n''),@bkfile=reverse(stuff(@bkfile,1,charindex('/',@bkfile),n''))+n'/backup/'+cast(newid()asnvarchar(36))+n'.sql'
--指令碼生成處理set@s=n'scptxfr/s'+quotename(cast(serverproperty(n'servername')asnvarchar),n'"')+n'/d'+quotename(@sdbname,n'"')+n'/i' --使用windows身份驗證,如果使用sql身份驗證,則愀為+n'/p"sa密碼"',固定使用sa使用者+n'/f'+quotename(@bkfile,n'"')+n'/y/q/t/c/y'execmaster..xp_cmdshell@s,no_output
--建立目標資料庫set@s=n'createdatabase'+quotename(@ddbname)execsp_executesql@s
--使用源庫指令碼,為目標資料庫建立物件set@s=n'osql/s'+quotename(cast(serverproperty(n'servername')asnvarchar),n'"')+n'/d'+quotename(@ddbname,n'"')+n'/e' --使用windows身份驗證,如果使用sql身份驗證,則愀為+n'/u"sa"/p"sa密碼"'+n'/i'+quotename(@bkfile,n'"')execmaster..xp_cmdshell@s,no_output
--刪除臨時備份檔案set@s='del"'+@bkfile+'"'execmaster..xp_cmdshell@s,no_outputgo
根據當月資料庫自動生成下個月資料庫 2
方法2.指令碼複製 use master goif exists select from dbo.sysobjects where id object id n dbo sp proccopydb and objectproperty id,n isprocedure 1 drop procedur...
根據當月資料庫自動生成下個月資料庫 2
方法2.指令碼複製 use master goif exists select from dbo.sysobjects where id object id n dbo sp proccopydb and objectproperty id,n isprocedure 1 drop procedur...
根據當月資料庫自動生成下個月資料庫 2
方法2.指令碼複製 use master goif exists select from dbo.sysobjects where id object id n dbo sp proccopydb and objectproperty id,n isprocedure 1 drop procedur...