从 LocalDB (.mdf) 文件转换为 SQL Server Express .mdf 文件和反向过程
Posted
技术标签:
【中文标题】从 LocalDB (.mdf) 文件转换为 SQL Server Express .mdf 文件和反向过程【英文标题】:Conversion from LocalDB (.mdf) file to SQL Server Express .mdf file and reverse process 【发布时间】:2013-11-28 20:13:03 【问题描述】:因为我们需要在我们的数据库中移动很多(比如用代码生成的新行更新它,然后更新它 prod db 和反向过程)。 SQL Server CE,作为一个基于文件的系统非常有帮助。
我们希望升级以使用 SQL Server Local Db,但同时它在 IIS 中的使用存在限制(尽管可以使用 AttacheDbFile
)。在这方面,由于 LocalDb 或多或少是 SQL Server Express 的一个版本,是否可以在我们的开发环境中使用我们的 SQL Server LocalDB .mdf
然后将它们复制到 prod 但通过附加到 SQL Server Express 实例来使用?
如果是,我们需要做哪些额外的事情才能使它成为可能?
另外,我们也希望逆向处理,即分离.mdf
文件并将其用作开发环境中的LocalDb。我读过伟大的博客文章
Krzysztof Kozielczyk 也对 LocalDb 进行了很多实验,但没有进行太多尝试。
【问题讨论】:
【参考方案1】:LocalDB IS SQL Server Express(随 SQL Server 2012 Express 引入),并且 LocalDB 和 SQL Server Express 之间的 .mdf
文件相同(甚至是“完整”SQL Server 版本,如 Web、标准或企业版)。
唯一需要注意的是:您需要使用这些数据库的相同版本,因为文件格式仅在相同版本之间是相同的,并且只能在相同版本之间使用(例如 2012 ) - 或者它可以“升级”到下一个更新版本(例如,一旦发布,您可以将数据库从 LocalDB 2012 移动到 SQL Server 2014 Express) - 但您永远不能返回较早的版本(您不能将 LocalDB 2012 .mdf
数据库文件附加到 SQL Server 2008 版本)。
【讨论】:
+1 @marc_s 用于确认 .mdf 文件的格式与要求相同的版本相同。从你的回答看来,只要我们在不同的环境中使用相同版本的这些数据库,在 db 周围移动是完全可能的。 @James:是的,如果您在所有相关服务器上都有相同版本的 SQL Server,那么移动就不是问题。升级到新版本也不是问题 - 但没有办法回到旧版本。以上是关于从 LocalDB (.mdf) 文件转换为 SQL Server Express .mdf 文件和反向过程的主要内容,如果未能解决你的问题,请参考以下文章