在論壇碰到有人問到無法Attach數據庫的問題,錯誤信息為:Msg5171,Level16,State1,Line2path\\allen_log.ldfisnotaprimarydatabasefile.很明顯這個錯誤表示Attch
在論壇碰到有人問到無法Attach數據庫的問題,錯誤信息為:
很明顯這個錯誤表示Attch數據庫選擇的文件不是主數據庫文件,但是看附加的數據文件確實是MDF結尾的。問用戶是否有多個MDF文件,用戶說是,但是他確定選擇的文件肯定是主數據文件,不會有錯。他認為數據庫文件是損壞了,我很確信這個錯誤是因為選擇的主數據文件不對。
用Profiler Trace抓了一下,網站空間,看到后臺執行下面的語句:
declare @command nvarchar(300)
valuesql_variantNULL)
insert #smoPrimaryFileProp exec(@command)
里邊使用了'dbcc checkprimaryfile,美國服務器,從網上查了一下這個DBCC命令可以查詢Detach的數據庫主數據文件信息,有四個選項可以使用:
0)
GO
1)
GO
2)
GO
3)
結果如下:
0表示文件是不是MDF文件
1最詳細可以查詢數據庫文件大小增長文件ID
2顯示數據庫名稱,內部版本號已經排序規則
3是1的縮減版結果
使用DBCC checkprimaryfile查詢剛才附件的文件就報了上面的錯誤,所以確信這個MDF文件錯誤了,使用其他文件就可以正確附加。
其實解決這個問題沒必要這么麻煩,幾個MDF文件試一次就可以了。但是知道了這個命令,香港虛擬主機,以后想查詢Detach數據庫信息了,就非常容易了。
另外有一個好的命名習慣是很重要的,不要將所有的輔助文件也命名為MDF,應該為NDF或者自己制定規則。
本文出自 “關注SQL Server技術” 博客,請務必保留此出處
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com