sqlserver mdf向上兼容附加數據庫(無法打開數據庫 'xxxxx' 版本 611。請將該數據庫升級為最新版本。)
最近工作中有一個sqlserver2005版本的mdf文件,還沒有log文件,現在需要
附加到sqlserver2012,經過網上一頓搜索,把完整的過程奉上,供大家參考
首先創建數據庫
再設置數據庫的兼容性(經過嘗試,此步驟可以省略)
停掉sqlserver 服務,將需要附件的mdf文件替換掉創建數據生成的mdf,刪除掉對應的ldf文件
再啟動sqlserver 服務
執行下面的腳本
腳本一:
ALTER DATABASE HunLianJiaoYou SET EMERGENCY
ALTER DATABASE HunLianJiaoYou SET SINGLE_USER
ALTER DATABASE HunLianJiaoYou REBUILD LOG ON (NAME=HunLianJiaoYou_log, FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\HunLianJiaoYou_log.ldf')
可能有警告“警告: 數據庫 'HunLianJiaoYou' 的日志已重新生成。已失去事務的一致性。RESTORE 鏈已斷開,服務器不再有以前的日志文件的上下文,因此您需要了解它們的內容。應運行 DBCC CHECKDB 驗證物理一致性。數據庫已置於 dbo-only 模式。在准備使數據庫可用時,需要重置數據庫選項,並刪除所有多余的日志文件。”
再重啟動數據庫服務
再執行下面的腳本
腳本二:
ALTER DATABASE HunLianJiaoYou SET MULTI_USER
ALTER DATABASE HunLianJiaoYou SET ONLINE
再重新啟動數據庫服務
完事!
PS:
在嘗試的過程中執行完腳本一 就執行腳本二,
就會拋出異常:無法打開數據庫 'HunLianJiaoYou' 版本 611。請將該數據庫升級為最新版本。
后來發現只需要行完腳本一,重啟服務,再執行腳本二就沒有問題了,就不會出現腳本兼容性的問題
--DBCC CHECKDB(HunLianJiaoYou1, REPAIR_ALLOW_DATA_LOSS)
--數據庫是緊急模式 執行下面的語句ALTER DATABASE HunLianJiaoYou SET ONLINE,恢復正常模式