【问题标题】:Can I use one .mdf file with multiple DBMSes (SQL Server 2008 and 2012)?我可以将一个 .mdf 文件与多个 DBMS(SQL Server 2008 和 2012)一起使用吗?
【发布时间】:2014-01-08 03:14:53
【问题描述】:
在家里,我安装了附加到某个 .mdf 文件的 SQL Server 2008 R2 (Express)。我正在安装 SQL Server 2012(开发者版)。我可以将 2012 附加到同一个 .mdf 文件吗?从逻辑上讲,只要 SQL Server 的两个实例中只有一个正在运行,这似乎就可以工作。想法?
【问题讨论】:
标签:
sql-server
sql-server-2012
sql-server-2008r2-express
【解决方案1】:
您可以向上 - 从旧版本升级到新版本,例如您可以在 2008 R2 中备份数据库并在 2012 实例中恢复该备份 - 但您不能从 较新版本的 SQL Server 附加/分离或备份/恢复数据库降到旧版本 - 内部文件结构差异太大,无法支持向后兼容性。
另外:由于.mdf 的内部文件结构非常不同并且特定于每个版本的 SQL Server,您将不能够使用来自两个不同版本的相同 .mdf SQL Server 版本。那肯定行不通。
您可以通过以下方式解决此问题
在所有机器上使用相同版本的 SQL Server - 然后您可以轻松地在实例之间备份/恢复数据库
否则,您可以在 SQL Server Management Studio (Tasks > Generate Scripts) 或使用第三方工具
或者您可以使用 Red-Gate 的 SQL Compare 和 SQL Data Compare 等第三方工具在源和目标之间进行“差异化”,根据这些差异生成更新脚本,然后在目标平台;这适用于不同的 SQL Server 版本。
【解决方案2】:
它可能会起作用 - 但我相信如果 SQL 2012 以 SQL 2008 崩溃的技术方式更新文件,您以后会遇到一些问题。
运行一个副本并备份并恢复到另一个副本不是更简单吗?