1

現在、このアプリケーションはSQLServerCEをデータベースとして使用しています。規模とパフォーマンスの理由から、SQL Server 2012 Expressに進むことにしました(間違っている場合は訂正してください)。

私の質問:すべてのSB属性(スキーマ、インデックス、外部キー、データなど)を使用してデータベースをSQLServerCEから2012Expressに移行する必要があります。

この移行は、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 に答える