套用到
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Workgroup SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup

徵兆

請試想下列案例:

  • 你在 Microsoft SQL Server 2008 R2 中建立資料庫。

  • 你可以透過 ALTER DATABASE 陳述式來更新資料庫的邏輯名稱。

  • 你要完整備份資料庫。 注意:備份完成後會產生完整的資料庫備份檔案。

  • 你嘗試從資料庫備份檔案還原資料庫。

在此案例中,您收到下列錯誤訊息:

Msg 3234,第16層,狀態2,第1行 邏輯檔案 '<邏輯檔名>' 不屬於資料庫 '<資料庫名稱>'。 使用 RESTORE FILELISTONLY 來列出邏輯檔名。訊息 3013,第 16 層,狀態 1,第 1行,還原資料庫異常終止。

如果你用 RESTORE FILELISTONLY 陳述式檢查備份檔案,你會發現你更新的邏輯檔名已經損壞。 邏輯檔名的最後一個字元會被截斷。 舉例來說,你嘗試將資料庫的邏輯名稱更新為 DB_modified。 然而,備份檔案中錯誤地改成 DB_modifie。注意:若在邏輯檔名更新後重新啟動 SQL Server 服務,此問題不會發生。

解決方案

累積更新資訊

SQL Server 2008 R2

此問題的修正最初於累積更新6中釋出。 欲了解更多如何取得 SQL Server 2008 R2 累積更新套件的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:

2489376 SQL Server 2008 R2 累積更新套件 6 備註:由於建置是累積式的,每個新修正釋版本都包含了先前 SQL Server 2008 R2 修正釋版本中所有的熱修補與安全修補。 我們建議您考慮套用包含此熱修正的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

981356 SQL Server 2008 R2 版本是在 SQL Server 2008 R2 發布後釋出的

熱修正資訊

Microsoft 已提供支援的熱修補程式。 不過,這個熱修正僅針對本文所述的問題進行修正。 此熱修正僅適用於遇到本文所述問題的系統。 這個熱修補可能會有額外的測試。 因此,如果您沒有受到此問題嚴重影響,我們建議您等待下一次包含此熱修補丁的軟體更新。如果熱修補程式可供下載,這篇知識庫文章頂部有一個「熱修補丁下載可用」的區塊。 若此部分未出現,請聯絡 Microsoft 客服與支援以取得熱修正。 注意:如果發生其他問題或需要排除故障,您可能需要另行申請服務。 一般的支援費用將適用於不符合本次熱修正範圍的其他支援問題與問題。 欲查詢完整的 Microsoft 客服與支援電話號碼清單,或建立獨立服務請求,請造訪以下 Microsoft 網站:

http://support.microsoft.com/contactus/?ws=support注意「熱修正下載可用」表單顯示該熱修正可用的語言。 如果你看不到你的語言,那是因為該語言沒有熱修正。

先決條件

要套用此熱修補,必須安裝 Microsoft SQL Server 2008 R2。

重新啟動需求

套用這個熱修正後,你不需要重啟電腦。

Hotfix 取代資訊

這個熱修補並不取代其他熱修補。

檔案資訊

此熱修正的英文版本包含以下表格中列出的檔案屬性 (或更新版本的檔案屬性) 。 這些檔案的日期和時間是以 Coordinated Universal Time (UTC) 表示。 當您檢視檔案資訊時,它會轉換為當地時間。 若要查看 UTC 與當地時間的差異,請使用 [控制台] 中 [日期和時間] 項目的 [時區] 索引標籤。

32-bit SQL Server 2008 R2 Database Services Core Instance

檔案名稱

檔案版本

檔案大小

日期

Time

Platform

atxcore.dll

2009.100.1755.0

26464

2010年12月24日

0:33

x86

datacollectorcontroller.dll

2009.100.1755.0

135520

2010年12月24日

0:33

x86

ETWCLS.MOF

不適用

1116328

2010年12月23日

3:54

不適用

instmsdb.sql

不適用

2241260

2010年12月22日

下午 08:49

不適用

mssqlsystemresource.ldf

不適用

524288

2010年12月22日

22:52

不適用

mssqlsystemresource.mdf

不適用

63569920

2010年12月22日

22:52

不適用

sql_engine_core_inst_keyfile.dll

2009.100.1755.0

13664

2010年12月24日

0:31

x86

sqlaccess.dll

2009.100.1755.0

415584

2010年12月24日

0:29

x86

sqlagent.exe

2009.100.1755.0

367968

2010年12月24日

0:34

x86

sqlagent100_msdb_upgrade.sql

不適用

2371245

2010年12月23日

3:53

不適用

sqlos.dll

2009.100.1755.0

14688

2010年12月24日

0:22

x86

sqlscriptdowngrade.dll

2009.100.1755.0

14688

2010年12月24日

0:21

x86

sqlscriptupgrade.dll

2009.100.1755.0

4611424

2010年12月24日

0:21

x86

sqlservr.exe

2009.100.1755.0

42904928

2010年12月24日

0:34

x86

sqsrvres.dll

2009.100.1755.0

89952

2010年12月24日

0:21

x86

64-bit SQL Server 2008 R2 資料庫服務核心實例

檔案名稱

檔案版本

檔案大小

日期

Time

Platform

atxcore.dll

2009.100.1755.0

31584

2010年12月23日

23:40

x64

datacollectorcontroller.dll

2009.100.1755.0

262496

2010年12月23日

23:40

x64

ETWCLS.MOF

不適用

1116328

2010年12月23日

3:54

不適用

instmsdb.sql

不適用

2241260

2010年12月22日

下午 08:49

不適用

mssqlsystemresource.ldf

不適用

524288

2010年12月22日

22:52

不適用

mssqlsystemresource.mdf

不適用

63569920

2010年12月22日

22:52

不適用

sql_engine_core_inst_keyfile.dll

2009.100.1755.0

14176

2010年12月23日

23:40

x64

sqlaccess.dll

2009.100.1755.0

403296

2010年12月23日

23:38

x86

sqlagent.exe

2009.100.1755.0

428384

2010年12月23日

23:40

x64

sqlagent100_msdb_upgrade.sql

不適用

2371245

2010年12月23日

3:53

不適用

sqlos.dll

2009.100.1755.0

15712

2010年12月23日

23:37

x64

sqlscriptdowngrade.dll

2009.100.1755.0

15712

2010年12月23日

23:37

x64

sqlscriptupgrade.dll

2009.100.1755.0

4610912

2010年12月23日

23:37

x64

sqlservr.exe

2009.100.1755.0

61957984

2010年12月23日

23:40

x64

sqsrvres.dll

2009.100.1755.0

105824

2010年12月23日

23:37

x64

Itanium-architecture SQL Server 2008 R2 Database Services Core Instance

檔案名稱

檔案版本

檔案大小

日期

Time

Platform

atxcore.dll

2009.100.1755.0

63328

2010年12月23日

23:05

IA64

datacollectorcontroller.dll

2009.100.1755.0

477024

2010年12月23日

23:05

IA64

ETWCLS.MOF

不適用

1116328

2010年12月23日

3:54

不適用

instmsdb.sql

不適用

2241260

2010年12月22日

下午 08:49

不適用

mssqlsystemresource.ldf

不適用

524288

2010年12月22日

22:52

不適用

mssqlsystemresource.mdf

不適用

63569920

2010年12月22日

22:52

不適用

sql_engine_core_inst_keyfile.dll

2009.100.1755.0

19296

2010年12月23日

23:05

IA64

sqlaccess.dll

2009.100.1755.0

392032

2010年12月23日

23:01

x86

sqlagent.exe

2009.100.1755.0

1205600

2010年12月23日

23:09

IA64

sqlagent100_msdb_upgrade.sql

不適用

2371245

2010年12月23日

3:53

不適用

sqlos.dll

2009.100.1755.0

22368

2010年12月23日

22:56

IA64

sqlscriptdowngrade.dll

2009.100.1755.0

20832

2010年12月23日

22:56

IA64

sqlscriptupgrade.dll

2009.100.1755.0

4617056

2010年12月23日

22:56

IA64

sqlservr.exe

2009.100.1755.0

121762656

2010年12月23日

23:09

IA64

sqsrvres.dll

2009.100.1755.0

188768

2010年12月23日

22:56

IA64

狀態

Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。

因應措施 

要解決這個問題,請使用以下兩種方法之一:

  • 在修改邏輯檔名後,執行以下語句重新啟動資料庫:ALTER DATABASE <資料庫名稱> SET OFFLINEALTER DATABASE <資料庫名稱> SET ONLINE

  • 當你修改邏輯檔名時,在新的邏輯名稱中加上一個虛擬空間字元。 例如,如果你想將邏輯名稱改為 DB_modified,請使用以下陳述式修改邏輯檔案名稱:ALTER DATABASE <資料庫名稱> MODIFY FILE (NAME=N'<資料庫名稱>', NEWNAME='DB_modified ') -- 附加 ' '到 NEWNAME

參考

欲了解更多關於 ALTER DATABASE Transact-SQL 陳述的資訊,請造訪以下 Microsoft 開發者網絡 (MSDN) 網站:

關於 ALTER DATABASE Transact-SQL 陳述式的一般資訊欲了解更多關於 RESTORE FILELISTONLY Transact-SQL 聲明的資訊,請造訪以下 Microsoft 開發者網絡 (MSDN) 網站:

關於 RESTORE FILELISTONLY Transact-SQL 語句的一般資訊

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。