none
data file 副檔名格式 RRS feed

  • 問題

  • Dear Sir:
    記得在SQL2000時可以自已定義第二個Data File 副檔名為 .mdf ,但SQL2005 UI 內定為 ndf 如何改成 mdf,謝謝。

    2009年7月13日 上午 08:27

解答

  • 你可以在使用新增資料庫的UI時,按下指令碼的按鈕以產生建立資料庫的Scripts,就可以自行變更第二個DATA FILE的附檔名了。

    2009年7月13日 上午 09:41
    版主
  • 如果已經建立資料庫,可以透過下列 2 種方式之 1 進行修改:
    1. 使用下面的指令修改 SQL Server 的
      USE Master;
      GO
      ALTER DATABASE <資料庫名稱> MODIFY FILE ( NAME = <邏輯名稱>, FileName = '<資料庫檔所在目錄與新的資料庫檔名>' );
      GO
      例如:
      ALTER DATABASE 北風貿易 MODIFY FILE
        ( NAME = 北風貿易_dat, FileName = 'E:\Work\Database\北風貿易_.mdf' )

      關閉執行上述 T-SQL 指令的視窗,將該資料庫設定成離線模式(在 SSMS 管理介面中,於資料庫名稱上,按下滑鼠右鍵,選擇「工作\離線工作」),使用檔案總管修改資料庫檔名,再將資料庫設定成上線模式
    2. 使用備份還原的方式,指令如下:
      -- 備份資料庫
      BACKUP DATABASE <資料庫名稱>
        TO DISK='<備份的資料檔路徑與檔名>';
      GO
      
      -- 刪除資料庫
      DROP DATABASE <資料庫名稱>;
      GO
      
      -- 列出備份資料檔中的邏輯名稱
      RESTORE FILELISTONLY
        FROM DISK = '<備份的資料檔路徑與檔名>';
      GO
      
      -- 還原資料庫,並搭配 MOVE 陳述式使資料和記錄檔還原到指定的位置並於以更名
      RESTORE DATABASE <資料庫名稱> FROM DISK = '<欲備份的資料檔路徑與檔名>'
        WITH
          MOVE '<資料庫邏輯名稱>' TO '<資料庫檔所在目錄與新的資料庫檔名>',
          MOVE '<日誌檔邏輯名稱>' TO '<日誌檔所在目錄與新的日誌檔名>';
      GO
      範例:
      BACKUP DATABASE 北風貿易
        TO DISK='E:\Alex\北風貿易.bak';
      GO
      
      DROP DATABASE 北風貿易;
      GO
      
      RESTORE FILELISTONLY
        FROM DISK = 'E:\Alex\北風貿易.bak';
      GO
      
      -- 還原資料庫,並搭配 MOVE 陳述式使資料和記錄檔還原到指定的位置並於以更名
      RESTORE DATABASE 北風貿易 FROM DISK = 'E:\Alex\北風貿易.bak'
        WITH
          MOVE '北風貿易_dat' TO 'E:\Alex\北風貿易_dat.mdf',
          MOVE '北風貿易_log' TO 'E:\Alex\北風貿易_log.ldf';
      GO

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2009年7月14日 上午 06:38
    版主

所有回覆

  • 你可以在使用新增資料庫的UI時,按下指令碼的按鈕以產生建立資料庫的Scripts,就可以自行變更第二個DATA FILE的附檔名了。

    2009年7月13日 上午 09:41
    版主
  • Change with 'alter database ... modify file (name = ..., filename = ...)' statement.
    2009年7月13日 下午 06:56
  • 如果已經建立資料庫,可以透過下列 2 種方式之 1 進行修改:
    1. 使用下面的指令修改 SQL Server 的
      USE Master;
      GO
      ALTER DATABASE <資料庫名稱> MODIFY FILE ( NAME = <邏輯名稱>, FileName = '<資料庫檔所在目錄與新的資料庫檔名>' );
      GO
      例如:
      ALTER DATABASE 北風貿易 MODIFY FILE
        ( NAME = 北風貿易_dat, FileName = 'E:\Work\Database\北風貿易_.mdf' )

      關閉執行上述 T-SQL 指令的視窗,將該資料庫設定成離線模式(在 SSMS 管理介面中,於資料庫名稱上,按下滑鼠右鍵,選擇「工作\離線工作」),使用檔案總管修改資料庫檔名,再將資料庫設定成上線模式
    2. 使用備份還原的方式,指令如下:
      -- 備份資料庫
      BACKUP DATABASE <資料庫名稱>
        TO DISK='<備份的資料檔路徑與檔名>';
      GO
      
      -- 刪除資料庫
      DROP DATABASE <資料庫名稱>;
      GO
      
      -- 列出備份資料檔中的邏輯名稱
      RESTORE FILELISTONLY
        FROM DISK = '<備份的資料檔路徑與檔名>';
      GO
      
      -- 還原資料庫,並搭配 MOVE 陳述式使資料和記錄檔還原到指定的位置並於以更名
      RESTORE DATABASE <資料庫名稱> FROM DISK = '<欲備份的資料檔路徑與檔名>'
        WITH
          MOVE '<資料庫邏輯名稱>' TO '<資料庫檔所在目錄與新的資料庫檔名>',
          MOVE '<日誌檔邏輯名稱>' TO '<日誌檔所在目錄與新的日誌檔名>';
      GO
      範例:
      BACKUP DATABASE 北風貿易
        TO DISK='E:\Alex\北風貿易.bak';
      GO
      
      DROP DATABASE 北風貿易;
      GO
      
      RESTORE FILELISTONLY
        FROM DISK = 'E:\Alex\北風貿易.bak';
      GO
      
      -- 還原資料庫,並搭配 MOVE 陳述式使資料和記錄檔還原到指定的位置並於以更名
      RESTORE DATABASE 北風貿易 FROM DISK = 'E:\Alex\北風貿易.bak'
        WITH
          MOVE '北風貿易_dat' TO 'E:\Alex\北風貿易_dat.mdf',
          MOVE '北風貿易_log' TO 'E:\Alex\北風貿易_log.ldf';
      GO

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2009年7月14日 上午 06:38
    版主