您很可能是遇到某個 SQL 2005 的 Bug, 類似的狀況可以在此查詢:
https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=124718&wa=wsignin1.0
如果當初備份時, 是將多個 database 寫入同一個備份檔裡面的話, 就有可能遇到這個 Bug, 大部分都是在備份或還原時透過 SQL Management Studio 去操作所造成的.您可以先試著安裝最新版的 Service Pack 看看, 或者改用 T-SQL 來操作試試看:
<pre class="c" name="code">RESTORE FILELISTONLY
FROM DISK = 'D:BackUpYourBaackUpFile.bak'
GO
請把上面的 D:BackUpYourBaackUpFile.bak 換成您的備份檔. 這個指令會列出一份清單, 包含這個備份檔裡面所有的 Database. 請找出您要還原的那個 Database 對照出最前面的 LogicalName, 把它記下來:
<pre class="c" name="code">----Make Database to single user Mode
ALTER DATABASE YourDB
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
----Restore Database
RESTORE DATABASE YourDB
FROM DISK = 'D:BackUpYourBaackUpFile.bak'
WITH MOVE 'YourMDFLogicalName' TO 'D:DataYourMDFFile.mdf',
MOVE 'YourLDFLogicalName' TO 'D:DataYourLDFFile.ldf'
請把上面的替換成:
YourDB: 你的 Database 名稱
D:BackUpYourBaackUpFile.bak: 你的備份檔
YourMDFLogicalName: 你剛剛查出來的 LogicalName
D:DataYourMDFFile.mdf: 你要復原的 Database mdf 檔案
D:DataYourLDFFile.ldf: 你要復原的 Database ldf 檔案
還原完畢之後, 請切回 Multi User mode:
<pre class="c" name="code">ALTER DATABASE YourDB SET MULTI_USER
GO
但我自己沒遇過這種狀況, 也沒有實際演練過, 不敢保證一定可以成功....