有没有办法将 SQL Server 2008 mdf 文件转换为 SQL Server Express 版本?
Posted
技术标签:
【中文标题】有没有办法将 SQL Server 2008 mdf 文件转换为 SQL Server Express 版本?【英文标题】:Is there any way to convert SQL Server 2008 mdf file to SQL Server Express version? 【发布时间】:2011-08-17 18:54:46 【问题描述】:我有一个 mdf 文件,它是 SQL Server 2008 文件。我想将其转换为 SQL Server Express 或 SQL Compact 版本。
有什么工具可以转换吗?
【问题讨论】:
【参考方案1】:对于 SQL Server - Express 或 Standard/Web/Developer - 文件格式没有区别。来自 SQL Server 2008 的 MDF 无需任何转换或修改即可在 SQL Server 2008(或 2008 R2)Express 上运行。
你可以
从 SQL Server 2008 创建一个备份(到.bak
文件中)并在 SQL Server 2008 Express 下恢复它
或:
您可以从 SQL Server 2008 中分离 MDF 文件,将文件复制到新位置(或新服务器),然后将它们重新附加到那里安装的 SQL Server 2008 Express。不过,SQL Server Compact Edition 完全不同 - 它由单个 .SDF
文件组成,无法从现有的 SQL Server 2008 MDF/LDF 文件集轻松创建...。我会如果有任何有用的工具可以将数据从 SQL Server 2008 (MDF/LDF) 迁移到 SQL Server Compact Edition 4.0 (SDF) 格式,我对此感兴趣...
更新:快速搜索发现了一些有趣的候选人:
SQL Server to SQL Server Compact Edition Database Copy Utility (CodeProject) Primeworks Data Port Wizard【讨论】:
需要注意的是,如果SQL Server版本比那个Express Edition新,很可能无法将db文件附加到后面,需要进行一些下转换。【参考方案2】:除非您使用 Express Edition 中不支持的功能(例如分区),否则您的 2008 数据库也适用于 SQL Server 2008 Express。如果数据库当前附加在某个地方,您可以使用以下方法检查这些功能:
SELECT feature_name, feature_id
FROM sys.dm_db_persisted_sku_features;
理想情况下,这将返回 0 行。如果它返回任何行,则很可能您正在使用 Express 中不符合条件的功能。
如果数据库实际上仍附加到 2008 实例,则备份/恢复比分离/附加更安全 - 这样,如果出现问题,您的原始数据库仍然完好无损。因此,如果已附加,您可以在 2008 实例上运行 BACKUP DATABASE 命令,然后在 Express 实例上运行 RESTORE DATABASE(可能使用 WITH MOVE 选项将文件存储在正确的位置)。 (更简单的方法是将数据库设置为离线,复制文件,然后再次将数据库设置为在线 - 但我仍然更喜欢 BACKUP/RESTORE 路线。)
备份:
http://msdn.microsoft.com/en-us/library/ms186865%28SQL.100%29.aspx
恢复:
http://msdn.microsoft.com/en-us/library/ms186858%28SQL.100%29.aspx
如果您只有一个 MDF/LDF 文件,那么在 SQL Server 2008 Express 上您应该能够使用 CREATE DATABASE...FOR ATTACH / FOR ATTACH_REBUILD_LOG。你可以在这里阅读语法:
创建数据库:
http://msdn.microsoft.com/en-us/library/ms176061%28SQL.100%29.aspx
如果您对这些命令中的任何一个有疑问,请发布您尝试过的内容以及收到的错误消息。
至于精简版,不,我不知道任何可以为您转换数据库的工具。两者的功能集甚至某些语言结构都不兼容。
【讨论】:
以上是关于有没有办法将 SQL Server 2008 mdf 文件转换为 SQL Server Express 版本?的主要内容,如果未能解决你的问题,请参考以下文章
windows server 2012 可以安装sql2008 吗
SQL Server 2008 - 从 Float 将列更改为 Varchar 产生科学记数法
使用 SQL Server Report Builder 2008 2.0 重命名 Excel 工作表