【发布时间】:2011-08-17 18:54:46
【问题描述】:
我有一个 mdf 文件,它是 SQL Server 2008 文件。我想将其转换为 SQL Server Express 或 SQL Compact 版本。
有什么工具可以转换吗?
【问题讨论】:
标签: sql-server sql-server-express sql-server-ce
我有一个 mdf 文件,它是 SQL Server 2008 文件。我想将其转换为 SQL Server Express 或 SQL Compact 版本。
有什么工具可以转换吗?
【问题讨论】:
标签: sql-server sql-server-express sql-server-ce
对于 SQL Server - Express 或 Standard/Web/Developer - 文件格式没有区别。来自 SQL Server 2008 的 MDF 无需任何转换或修改即可在 SQL Server 2008(或 2008 R2)Express 上运行。
你可以
.bak 文件中)并在 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) 格式,我对此感兴趣...
更新:快速搜索发现了一些有趣的候选人:
【讨论】:
除非您使用 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
如果您对这些命令中的任何一个有疑问,请发布您尝试过的内容以及收到的错误消息。
至于精简版,不,我不知道任何可以为您转换数据库的工具。两者的功能集甚至某些语言结构都不兼容。
【讨论】: