【问题标题】:Is there any way to convert SQL Server 2008 mdf file to SQL Server Express version?有没有办法将 SQL Server 2008 mdf 文件转换为 SQL Server Express 版本?
【发布时间】:2011-08-17 18:54:46
【问题描述】:

我有一个 mdf 文件,它是 SQL Server 2008 文件。我想将其转换为 SQL Server Express 或 SQL Compact 版本。

有什么工具可以转换吗?

【问题讨论】:

    标签: sql-server sql-server-express sql-server-ce


    【解决方案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版本比那个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

    如果您对这些命令中的任何一个有疑问,请发布您尝试过的内容以及收到的错误消息。

    至于精简版,不,我不知道任何可以为您转换数据库的工具。两者的功能集甚至某些语言结构都不兼容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多