我有一个mdf文件,它是SQL Server 2008文件。我想将其转换为SQL Server Express或SQL Compact版本。
有转换它的工具吗?
答案 0 :(得分:5)
对于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)格式,我会感兴趣吗...
更新:快速搜索找到了一些有趣的候选人:
答案 1 :(得分:3)
除非您使用在Express Edition中不起作用的功能(例如分区),否则您的2008数据库也符合SQL Server 2008 Express的条件。如果数据库当前已附加到某处,您可以使用以下方法检查这些功能:
SELECT feature_name, feature_id
FROM sys.dm_db_persisted_sku_features;
理想情况下,这将返回0行。如果它返回任何行,很可能您使用的是不符合Express条件的功能。
如果数据库实际上仍然附加到2008实例,那么BACKUP / RESTORE比分离/附加更安全 - 这样,如果出现问题,原始数据库仍然完好无损。因此,如果附加了它,则可以在2008实例上运行BACKUP DATABASE命令,然后在Express实例上运行RESTORE DATABASE(可能使用WITH MOVE选项将文件存储在正确的位置)。 (更简单的方法是将数据库设置为OFFLINE,复制文件,然后再次将数据库设置为ONLINE - 但我仍然更喜欢BACKUP / RESTORE路径。)
<强> BACKUP:强>
http://msdn.microsoft.com/en-us/library/ms186865%28SQL.100%29.aspx
<强> RESTORE:强>
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
如果您遇到任何这些命令的问题,请发布您尝试过的内容以及收到的错误消息。
对于Compact Edition,不,我不知道任何可以为您转换数据库的工具。功能集甚至一些语言结构在两者之间是不兼容的。