gpt4 book ai didi

sql-server - 如何将 SQL Server 2008 .mdf 文件转换为 SQL Server 2012?

转载 作者:行者123 更新时间:2023-12-02 06:25:01 26 4
gpt4 key购买 nike

我需要将文件 DATABASE.MDF 从 SQL Server 2008 转换为 SQL Server 2012?

Database 'Sales' cannot be upgraded because its non-release version (539) is not supported by this version of SQL Server. You cannot open a database that is incompatible with this version of sqlservr.exe. You must re-create the database.
Could not open new database 'Sales'. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 950)

最佳答案

只需附加它即可升级。如果您没有 LDF 文件(为什么没有 LDF 文件?),您可能必须使用:

CREATE DATABASE [DatabaseName] ON 
(FILENAME = N'Drive:\path\file.mdf')
FOR ATTACH_REBUILD_LOG;

当然,有一些警告......

  • 由于您只有 .mdf 文件,您可能会猛然惊醒。如果文件未从 SQL Server 完全分离,则可能无法重新附加,并且您必须返回源服务器进行正确备份(不是 .mdf 文件)。这完全取决于您从何处获取要升级的 .mdf 文件。如果您的 .mdf 文件未完全分离,您可能会收到此错误:

File activation failure. The physical file name "..._log.LDF" may be incorrect.
The log cannot be rebuilt because the database was not cleanly shut down.
Msg 1813, Level 16, State 2, Line 1
Could not open new database 'DatabaseName'. CREATE DATABASE is aborted.

  • 如果您的数据库处于80兼容模式,它将升级到90。这可能意味着某些工作代码可能会突然中断,例如*=/=*连接语法。
  • 如果您的数据库大于 10GB,并且您尝试附加到 Express(也许是 LocalDB,从未尝试过此操作),则附加将失败(或者附加可能成功,但在第一次自动增长时会失败?也没有测试过这一点) .
  • 如果您的数据库是在 2008 Enterprise/Developer 上创建的,并且您使用了仅在 2008 Enterprise/Developer 上提供的功能,并且您将数据库附加到 Standard 或 Express 版本,您也会遇到问题...
  • 好的,从您的错误消息来看,您根本没有尝试附加 2008 数据库,而是附加 2000 数据库。您无法将其直接附加到 SQL Server 2012。您首先需要将其附加到 SQL Server 2005、2008 或 2008 R2 的任何实例以将其升级到该版本,然后将其备份并还原到 SQL Server 2012。

FWIW,将数据库从一个实例移动到另一个实例的一种非常非常安全的方法是使用 BACKUP/RESTORE (原因是,如果您的备份失败,您仍然拥有数据库的副本 - 如果您分离数据库并且出现问题,则您的副本为零)。尽管即使采用这种更安全的方法,上述一些问题可能仍然存在。

关于sql-server - 如何将 SQL Server 2008 .mdf 文件转换为 SQL Server 2012?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15163938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com