• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 根據當月數據庫自動生成下個月數據庫--2

    發表于:2007-05-25來源:作者:點擊數: 標簽:數據庫當月下個月自動生成根據
    --方法2. 腳本復制 use master go if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ProcCopyDb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[sp_ProcCopyDb] GO /*-- 數據庫 自動復制 將指定前緣的數

    --方法2. 腳本復制
    use master
    go

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ProcCopyDb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[sp_ProcCopyDb]
    GO

    /*--數據庫自動復制

    將指定前緣的數據庫,復制為一個以當前月份+1為庫名的數據庫中,并且清除所有的數據
    例如,數據庫前緣為 Pos ,當前日期為 2005-3-27
    則要求復制數據 Pos200503 為 Pos200504,并且清空里面的數據

    用生成源庫腳本的方法實現
    好處是速度快,不需要考慮源數據庫的數據
    但如果要保留源數據庫的部分數據,則要專門做數據復制處理

    --運行需求
    需要如下兩個文件,可以在sql安裝盤 X86\UPGRADE 目錄下找到
    scptxfr.exe
    scptxfr.rll

    將其復制到下述目錄
    %systemroot%\system32\
    --鄒建 2005.03(引用請保留此信息)--*/

    /*--調用示例

    -- 復制 Pos
    exec sp_ProcCopyDb 'Pos'
    --*/

    --1.master 數據庫中創建一個處理的存儲過程,實現當月數據庫到下月數據的自動復制

    /*--系統需求
    需要如下兩個文件,可以在sql安裝盤 X86\UPGRADE 目錄下找到
    scptxfr.exe
    scptxfr.rll

    將其復制到下述目錄
    %systemroot%\system32\
    --*/

    create proc sp_ProcCopyDb
    @DB_Head sysname=N''  --數據庫前綴
    as
    declare @sdbname sysname,@ddbname sysname
    declare @s Nvarchar(4000),@bkfile Nvarchar(1000)

    --復制的源庫名及目標庫名
    select @sdbname=@DB_Head+convert(char(6),getdate(),112),
    @ddbname=@DB_Head+convert(char(6),dateadd(month,1,getdate()),112)

    if db_id(@sdbname) is null
    begin
    raiserror(N'源數據庫"%s"不存在',1,16,@sdbname)
    return
    end

    if db_id(@ddbname) is not null
    begin
    raiserror(N'目標數據庫"%s"已經存在',1,16,@ddbname)
    return
    end

    --臨時備份文件名
    select top 1 @bkfile=rtrim(reverse(filename))
    from master.dbo.sysfiles
    where name=N'master'
    select @bkfile=stuff(@bkfile,1,charindex('\',@bkfile),N'')
    ,@bkfile=reverse(stuff(@bkfile,1,charindex('\',@bkfile),N''))
    +N'\BACKUP\'+cast(newid() as nvarchar(36))+N'.sql'

    --腳本生成處理
    set @s=N'scptxfr /s '+quotename(cast(serverproperty(N'servername') as nvarchar),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'
    exec master..xp_cmdshell @s,no_output

    --創建目標數據庫
    set @s=N'create database '+quotename(@ddbname)
    exec sp_executesql @s

    --使用源庫腳本,為目標數據庫創建對象
    set @s=N'osql /S'+quotename(cast(serverproperty(N'servername') as nvarchar),N'"')
    +N' /d '+quotename(@ddbname,N'"')
    +N' /E'  --使用windows身份驗證,如果使用sql身份驗證,則愀為 +N' /U"sa" /P"sa密碼"'
    +N' /i'+quotename(@bkfile,N'"')
    exec master..xp_cmdshell @s,no_output

    --刪除臨時備份文件
    set @s='del "'+@bkfile+'"'
    exec master..xp_cmdshell @s,no_output
    go


    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>