.NET:如何将App_Data中的数据库迁移至SQL Server?
嘿,我来帮你一步步搞定把App_Data里的数据库迁移到SQL Server的事儿,这样你就能顺利衔接后续的SQL Azure上传流程啦!
迁移步骤分情况处理
首先得先明确你App_Data里的数据库类型——常见的是SQL Server Compact Edition (.sdf) 或者 LocalDB (.mdf),下面分两种情况给你操作指南:
情况1:如果是SQL Server Compact (.sdf)
- 打开SQL Server Management Studio (SSMS),连接到你的目标SQL Server实例(本地或远程都可以)。
- 右键点击目标数据库(或者先新建一个空数据库),选择任务 > 导入数据,启动SQL Server导入和导出向导。
- 在数据源下拉菜单里选SQL Server Compact Edition,点击「浏览」找到App_Data文件夹里的
.sdf文件。 - 目标选择你的SQL Server实例和对应的数据库,跟着向导一步步勾选要导入的表,完成数据迁移。
- 迁移结束后,记得在SSMS里验证下数据是否都完整导入了。
情况2:如果是LocalDB (.mdf)
- 先把App_Data里的
.mdf和对应的.ldf日志文件,复制到一个SQL Server能直接访问的路径(比如本地磁盘根目录,避免App_Data的权限限制)。 - 打开SSMS,连接到你的SQL Server实例,右键点击「数据库」,选择附加。
- 在附加窗口里点击「添加」,找到你复制的
.mdf文件,确认日志文件路径无误后,点击「确定」完成附加操作。 - 附加完成后,同样在SSMS里检查下数据是否正常。
调整连接字符串
迁移完成后,你需要把原来的应用连接字符串换成指向SQL Server的版本。举个例子:
原来的LocalDB连接字符串可能是这样:
Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\YourDB.mdf;Integrated Security=True
替换成SQL Server的连接字符串:
Data Source=你的SQL Server实例名;Initial Catalog=你的数据库名;Integrated Security=True;
如果用的是SQL Server身份验证,就把Integrated Security=True换成User ID=你的用户名;Password=你的密码;
后续衔接DMA
等你确认应用能正常访问这个SQL Server数据库之后,就可以用Data Migration Assistant (DMA)来把数据迁移到SQL Azure了——这部分你已经熟悉,就不多啰嗦啦。
要是迁移过程中碰到权限问题(比如SQL Server读不到App_Data里的文件),记得先把数据库文件复制到公共路径,或者给SQL Server服务账号赋予App_Data文件夹的读取权限哦。
内容的提问来源于stack exchange,提问作者Lucie
相关产品推荐
相关产品推荐

