1

目前,我们的应用程序使用 SQL Server CE 作为我们的数据库。出于规模和性能的原因,我们决定继续使用 SQL Server 2012 Express(如果我错了,请纠正我)。

我的问题:我们需要将数据库从 SQL Server CE 迁移到具有所有 SB 属性(架构、索引、外键、数据 ...)的 2012 Express

此迁移应在 C# 代码中处理的升级过程中执行。

我们该怎么做?

4

1 回答 1

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();
  }
}
于 2013-02-27T18:20:14.167 回答