【问题标题】:How to migrate SQL Server CE to SQL Server 2012 Express from C# code如何从 C# 代码将 SQL Server CE 迁移到 SQL Server 2012 Express
【发布时间】:2013-02-27 14:53:48
【问题描述】:
目前,我们的应用程序使用 SQL Server CE 作为我们的数据库。出于规模和性能的原因,我们决定继续使用 SQL Server 2012 Express(如果我错了,请纠正我)。
我的问题:我们需要将数据库从 SQL Server CE 迁移到具有所有 SB 属性(架构、索引、外键、数据...)的 2012 Express
此迁移应在 C# 代码中处理的升级过程中执行。
我们该怎么做?
【问题讨论】:
标签:
database
migration
sql-server-ce
sql-server-express
【解决方案1】:
您可以使用我的脚本 API 将 SQL CE 数据库脚本写入文件,然后针对 SQL Server 数据库运行脚本(示例需要一个空的服务器数据库,并且所需的 SQL Server 安全性已到位)
using ErikEJ.SqlCeScripting;
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
try
{
using (IRepository ceRepository = new DB4Repository(@"Data Source=C:\Data\SQLCE\Test\nw40.sdf"))
{
string fileName = Path.GetTempFileName();
var generator = new Generator4(ceRepository, fileName);
generator.ScriptDatabaseToFile(Scope.SchemaData);
using (IRepository serverRepository = new ServerDBRepository4("Data Source=.;Trusted_Connection=true;Initial Catalog=Test"))
{
serverRepository.ExecuteSqlFile(fileName);
Console.WriteLine("Database exported");
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
Console.ReadKey();
}
}