文章編號: 836873 - 上次校閱: 2004年2月20日 - 版次: 1.3

當您使用建立資料庫陳述式來建立 SQL Server 資料庫時,可能會收到錯誤訊息

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

重要本文包含修改登錄的相關資訊。 修改登錄之前請確定它備份起來,並請確定您瞭解如何在發生問題時還原登錄。如如何備份、 還原,以及編輯登錄有關,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
256986? (http://support.microsoft.com/kb/256986/ ) Microsoft Windows 登錄的描述
全部展開 | 全部摺疊

徵狀

當您嘗試藉由執行 CREATE 資料庫 Transact-SQL 陳述式建立 Microsoft SQL Server 資料庫時,您可能無法建立該資料庫,並且可能會收到下列錯誤訊息:
伺服器: msg 5105、 層級 16,狀態 2、 行 1
裝置啟動錯誤。實體檔案名稱 '< 資料庫檔案名稱 >' 可能不正確。
伺服器: 訊息 5123、 層級 16,狀態 1、 第 1 行
CREATE FILE 嘗試開啟或建立實體檔案 '< 完整路徑的資料庫檔案名稱 >' 時遇到作業系統錯誤 3(The system cannot find the path specified.)。
此外,您可能會收到下列錯誤訊息:
伺服器: 訊息 1802年、 層級 16,狀態 1、 行 1
建立資料庫失敗。無法建立某些列出的檔案名稱。請檢查先前的錯誤。

發生的原因

之所以發生這個問題,因為對應預設資料目錄,並預設記錄檔目錄 DefaultDataDefaultLog 登錄值存在,但資料夾路徑所述登錄值中的任一個空白,或者不存在。

其他可行方案

如果要解決這個問題而定,使用 [下列的其中一個方法]:

將預設資料目錄值及預設記錄檔目錄值設定為有效的資料夾路徑

您可以使用 SQL Server 企業管理員] 或 [登錄編輯程式 」 來設定預設資料目錄值與預設記錄檔目錄值。

使用 SQL Server 企業管理員

附註執行個體的 SQL Server 企業管理員隨附於 SQL Server 7.0 並不支援設定預設資料目錄] 和 [預設記錄檔目錄。但是,您可以在執行個體的 SQL Server 企業管理員隨附於 SQL Server 2000 中註冊您的 SQL Server 7.0 的執行個體,並您可以遵循這些步驟來設定您的 SQL Server 7.0 的執行個體的預設資料目錄及預設記錄檔目錄。
  1. 按一下 [開始],指向 [程式集]、 指向 [Microsoft SQL Server,然後再按一下 [企業管理員]。
  2. 在 [SQL Server 企業管理員] 中,SQL Server 執行個體上按一下滑鼠右鍵,然後再按 [內容]
  3. SQL Server 屬性 (設定)-< 執行個體名稱 >] 方塊按一下 資料庫設定] 索引標籤。
  4. 新的資料庫預設位置] 區段中輸入有效的資料夾路徑在 預設的資料目錄] 方塊和 [預設記錄檔目錄] 方塊。
  5. 按一下 [確定]
  6. 停止 SQL Server 執行個體,然後重新啟動 SQL Server 執行個體。
使用 「 登錄編輯器 」

警告如果您未正確使用登錄編輯程式可能會導致嚴重的問題,可能必須重新安裝作業系統。Microsoft 不保證您可以解決因不當使用 「 登錄編輯器 」 的問題。使用 「 登錄編輯程式 」,請自行負擔相關的風險。

附註執行個體的 SQL Server 企業管理員隨附於 SQL Server 7.0 並不支援設定預設資料目錄] 和 [預設記錄檔目錄。但是,您可以修改對應至預設的資料目錄] 和 [預設記錄檔目錄,若要解決這個問題的登錄值。
  1. 按一下 [開始],然後按一下 [執行]。
  2. 在 [執行] 對話方塊在 [開啟] 方塊輸入 Regedit],然後再按一下 [確定]。
  3. 在 [登錄編輯程式] 中,選取下列登錄機碼的 SQL Server 預設執行個體:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
    在 [登錄編輯程式] 中,選取 SQL Server 的具名執行個體下列登錄機碼:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\MSSQLServer
  4. 在右窗格中 DefaultData 登錄值上按一下滑鼠右鍵,然後按一下 [修改]
  5. 在 [編輯字串] 對話方塊在 數值資料] 方塊中輸入有效的資料夾路徑,再按 [確定]
  6. DefaultLog 登錄值重複步驟 4 和步驟 5。
  7. 停止 SQL Server 執行個體,然後重新啟動 SQL Server 執行個體。

移除對應至預設的資料目錄] 和 [預設記錄檔目錄的登錄值

警告如果您未正確使用登錄編輯程式可能會導致嚴重的問題,可能必須重新安裝作業系統。Microsoft 不保證您可以解決因不當使用 「 登錄編輯器 」 的問題。使用 「 登錄編輯程式 」,請自行負擔相關的風險。
  1. 按一下 [開始],然後按一下 [執行]。
  2. 在 [執行] 對話方塊在 [開啟] 方塊輸入 Regedit],然後再按一下 [確定]。
  3. 在 [登錄編輯程式] 中,找出,並選取下列登錄機碼的 SQL Server 預設執行個體:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
    在 [登錄編輯程式] 中,找出,並選取下列登錄機碼的 SQL Server 的具名執行個體:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\MSSQLServer
  4. 在右窗格中刪除 DefaultLog 登錄值 DefaultData 登錄值。
  5. 停止 SQL Server 執行個體,然後重新啟動 SQL Server 執行個體。

其他相關資訊

當您在設定 SQL Server 執行個體時,安裝程式並不會建立登錄項目,會對應至預設的資料目錄] 和 [預設記錄檔目錄。因此,當您在 「 SQL Server 企業管理員 」 中檢視 新的資料庫預設位置 區段,預設資料目錄] 和 [預設記錄檔目錄 的路徑是空白。

如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
272705 ? (http://support.microsoft.com/kb/272705/ ) 預設資料和記錄檔目錄顯示預設安裝 SQL Server 2000 之後空白
不過,當您第一次設定預設資料目錄] 和 [預設記錄檔目錄,相對應的 DefaultDataDefaultLog 登錄值會建立下列登錄機碼中的 SQL Server 預設執行個體:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
DefaultDataDefaultLog 登錄值會在下列登錄機碼中建立 SQL Server 的具名執行個體:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\MSSQLServer
DefaultData 登錄值包含設定為預設的資料目錄的資料夾路徑。同樣地,DefaultLog 登錄值包含設定為預設記錄檔目錄的資料夾路徑。

當您使用 CREATE 資料庫 Transact-SQL 陳述式來建立新的資料庫時,SQL Server 會嘗試建立資料檔和記錄檔,對應到資料庫中 DefaultData 登錄值中和 DefaultLog 登錄值中所指定的資料夾。因此,如果 DefaultData 登錄值和 DefaultLog 登錄值包含不存在的資料夾路徑,SQL Server 無法建立對應的資料檔案或資料庫的記錄檔成功,而您會收到 < 徵狀 > 一節中所述的錯誤訊息。

這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
關鍵字:?
kbmt kbtsql kbdatabase kberrmsg kbupdate kbfile kbregistry kbprb KB836873 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:836873? (http://support.microsoft.com/kb/836873/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。