【问题标题】:migrate sdf file to sql server将 sdf 文件迁移到 sql server
【发布时间】:2013-01-09 17:47:24
【问题描述】:
我创建了代码优先方法应用程序 mvc,它创建了 sdf 文件 db。现在我想将该 sdf 文件迁移到 sql server。
当我双击 sdf 时,它会显示类似 This is not a valid SQL Server Compact Database file or this file version is not supported by current SQL Server Compact Engine. 的消息
我想迁移,同步数据到sql server,以后有什么更好的方法,我该如何迁移db?
【问题讨论】:
标签:
asp.net-mvc-3
entity-framework
ef-code-first
entity-framework-migrations
【解决方案1】:
错误消息的一个可能原因是您的开发计算机上没有安装正确版本的 SQL Server Compact。
当前版本是 4.0,但您的应用程序可能仍在使用 3.5。找出它是哪个版本并检查文件夹 C:\Program Files\Microsoft SQL Server Compact Edition 以查看是否存在具有该版本名称的目录。如果没有,请下载并安装它(3.5、4.0)。
如果您使用的是 SqlCE 4.0 和 Visual Studio 2010 Pro 或更高版本,您可以使用 ErikEJ's SQL Server Compact Toolbox 3.3.0.4 迁移 sdf 的结构和数据,这可通过 Visual Studio 的扩展管理器获得。
安装工具箱后,迁移步骤如下:
使用工具箱,在 Visual Studio 中连接到您的 sdf 文件。
从上下文菜单中,选择 脚本数据库 > 脚本数据库模式和数据(不要选择 使用 BLOBS 编写数据库模式和数据)。这将保存一个或多个“.sqlce”脚本文件,具体取决于您的 sdf 有多大。
在您的 SQL Server 实例中,创建一个空的目标数据库。
找到 Sql Server 安装的 SQLCMD.exe。对于 SQL Server 2008,它通常位于 C:\Program Files\Microsoft SQL Server\100\Tools\Binn。打开具有管理员权限的常规 cmd.exe 并导航到包含 SQLCMD.exe 的目录。
从那里执行:
sqlcmd -S [sql server 实例名称] /d [目标数据库名称] -i
[完整路径][文件名].sqlce
如果你有多个 sqlce 文件,你可以像这样在同一个命令中引用它们:
sqlcmd -S [sql server 实例名称] /d [目标数据库名称] -i
[完整路径][文件名_0].sqlce -i [完整路径][文件名_1].sqlce -i
[完整路径][filename_2].sqlce
服务器选项 -S 必须是大写字母。祝你好运。