我可以将一个.mdf文件与多个DBMS(SQL Server 2008和2012)一起使用吗?

时间:2014-01-08 03:14:54

标签: sql-server sql-server-2012 sql-server-2008r2-express

在家里,我安装了SQL Server 2008 R2(Express),它附加到某个.mdf文件。我正在安装SQL Server 2012(开发人员版)。我可以将2012附加到同一个.mdf文件吗?从逻辑上讲,只要SQL Server的两个实例中只有一个正在运行,它似乎就可以工作。思考?

2 个答案:

答案 0 :(得分:2)

您可以向上 - 从较旧版本转到较新版本,例如您可以在2008 R2中备份数据库并在2012实例中恢复该备份 - 但是不能从SQL Server的较新版本附加/分离或备份/恢复数据库到旧版本 - 内部文件结构太不相同,无法支持向后兼容性。

另外:由于.mdf的内部文件结构与每个版本的SQL Server非常不同且特定,因此 NOT 能够使用相同的{{1}来自两个不同的SQL Server版本。这肯定是行不通的。

您可以通过

解决此问题
  • 在所有计算机上使用相同版本的SQL Server - 然后您可以在实例之间轻松备份/恢复数据库

  • 否则,您可以在SQL Server Management Studio(.mdf中为结构(表,视图,存储过程等)和内容(表中包含的实际数据)创建数据库脚本)或使用第三方工具

  • 或者您可以使用Red-Gate的SQL CompareSQL Data Compare之类的第三方工具在源和目标之间进行“差异化”,根据这些差异生成更新脚本,然后在目标平台上执行这些脚本;这适用于不同的SQL Server版本。

答案 1 :(得分:0)

它可能会起作用 - 但是如果SQL 2012以SQL 2008爆炸的技术方式更新文件,我相信你会在以后遇到一些问题。

运行一个副本并备份并恢复到另一个副本不是更简单吗?