如何一次備份 SQL Server 中所有資料庫 :十一的部落:Xuite日誌
  • yan.kee
  • 文章分類
  • 最愛連結
  • 我的發燒文
  • 累積 | 今日
    loading......
  • 參觀人氣統計
  • 誰拜訪過我
  • BLOG玩意兒
  • 搜尋文章
  • 關鍵字
  • 最新文章
  • 最新回應
  • Re:只能在執行 Render() 的過程中調用 RegisterForEventValidation,by(11)於2008-07-03
    Re:[轉]自動清除7天以上的檔案 ,by(haoming)於2008-06-13
    Re:[kuso]尿布舞,by(11)於2008-05-18
    Re:[kuso]尿布舞,by(seth)於2008-05-18
    Re:C#中產生GUID,by(yankee)於2008-02-17
    Re:C#中產生GUID,by(jimmy)於2008-02-16
    Re:開發excel 問題討論串,by(11)於2008-02-02
    Re:Connection Strings 討論串,by(11)於2008-01-27
    Re:SQL 分頁,by(11)於2008-01-25
    Re:開發excel 問題討論串,by(11)於2008-01-16
  • 活動
  • 到台灣玩不帶走一張發票
    ===訪客來自===
    Locations of visitors to this page
  • 日誌使用資源






  • 如何使用RSS
    Powered by Xuite
  • 最新引用
  • 沒有新引用
  • 最愛日誌
  • 2008-05-20 20:19 如何一次備份 SQL Server 中所有資料庫
  • ?
  • SQL
  • 好文轉寄
  • 平均分數:0 顆星    投票人數:0
    我要評分:
    標籤 : 


    -- 取得資料庫本機的 Backup 資料目錄
    DECLARE @backup_path nvarchar(256);
    DECLARE @backup_file nvarchar(256);
    SET @backup_path = (SELECT SUBSTRING(SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1), 1, CHARINDEX(N'\DATA\', LOWER(physical_name)) - 1) + '\Backup\'
                      FROM master.sys.master_files
                      WHERE database_id = 1 AND file_id = 1);


    -- 用來暫存備份指令的變數
    declare @backup_sql nvarchar(max)
    set @backup_sql = '';

    -- 用來暫存資料庫名稱的變數
    declare @dbname nvarchar(256)

    -- 宣告 cursor 以取得資料庫名稱
    declare icur cursor static for select name from sys.databases where name != 'tempdb'

    OPEN icur

    fetch next from icur into @dbname
    while(@@FETCH_STATUS=0)
    BEGIN
        set @backup_file = @backup_path + @dbname + '.bak'
        set @backup_sql  = 'BACKUP DATABASE ['+@dbname+']  TO DISK='''+@backup_file+''''

        exec (@backup_sql)

        FETCH NEXT FROM icur INTO @dbname
    END

    close icur
    deallocate icur

     

    備份完成的資料庫預設會擺在 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup 目錄下。

     



    yan.kee / Xuite日誌 / 回應(0) / 引用(0) / 好文轉寄
  • 回應