34

SQLiteデータベースをSQL Server (構造とデータの両方)に移行するツールはありますか?

4

6 に答える 6

41

SQLiteには、コマンド ラインで実行する .dump オプションがあります。ただし、SQLite データベースを管理するためにSQLite Database Browserアプリケーションを使用することを好みます。構造と内容を、ほぼ何でも読み取ることができる .sql ファイルにエクスポートできます。[ファイル] > [エクスポート] > [データベースを SQL ファイルに]。

于 2008-10-02T15:48:54.843 に答える
9

SQLite.dumpコマンドは、データベースの内容全体を ASCII テキスト ファイルとして出力します。このファイルは標準の SQL 形式であるため、任意の SQL データベースにインポートできます。このページの詳細: sqlite3

于 2008-10-02T15:51:57.257 に答える
5

sqlite-manager、firefox アドオン: SQL スクリプトで SQLite データベースをエクスポートできます。

データベース>データベースのエクスポート>ファイルへのエクスポート

(次の Web ページに示すように拡張コードを修正する必要がある修正 Firefox 35 バグ: How to fix your optional sqlite manager module to work )

コマンドライン:

sqlite3 DB_name .dump > DB_name.sql

SQL スクリプトで sqlite データベースをエクスポートします。

URL から: http://doc.ubuntu-fr.org/sqlite

于 2015-01-26T13:53:25.423 に答える
0

アイデアは次のようなことです: - sql lite で squema を表示し、CREATE TABLE コマンドを取得します。- SQL SERVER で sql を解析して実行 - 行ごとに INSERT ステートメントを作成するデータを移動します。(SQLの解析も)

このコードはベータ版です。タイプ データを検出せず、@parameter とコマンド オブジェクトを使用せずに実行するためです。

(参照を挿入して System.Data.SQLite をインストールする必要があります;)

c#: このコード (または必要) を head cs に挿入します

システムを使用する;

System.Collections.Generic の使用;

System.Text を使用します。

System.Data の使用;

System.Data.SqlClient を使用します。

System.Data.SQLite の使用;

System.Threading の使用;

System.Text.RegularExpressions を使用します。

System.IO の使用;

log4net の使用;

System.Net を使用。

    public static Boolean SqLite2SqlServer(string sqlitePath, string connStringSqlServer)
    {
        String SqlInsert;
        int i;
        try
        {

            string sql = "select * from sqlite_master where type = 'table' and name like 'YouTable in SQL'";
            string password = null;
            string sql2run;
            string tabla;
            string sqliteConnString = CreateSQLiteConnectionString(sqlitePath, password);
            //sqliteConnString = "data source=C:\\pro\\testconverter\\Origen\\FACTUNETWEB.DB;page size=4096;useutf16encoding=True";

            using (SQLiteConnection sqconn = new SQLiteConnection(sqliteConnString))
            {



                sqconn.Open();

                SQLiteCommand command = new SQLiteCommand(sql, sqconn);
                SQLiteDataReader reader = command.ExecuteReader();

                SqlConnection conn = new SqlConnection(connStringSqlServer);
                conn.Open();
                while (reader.Read())
                {
                    //Console.WriteLine("Name: " + reader["name"] + "\tScore: " + reader["score"]);
                    sql2run = "" + reader["sql"];
                    tabla = "" + reader["name"];

                    /*
                    sql2run = "Drop table " + tabla;
                    SqlCommand cmd = new SqlCommand(sql2run, conn);                       
                    cmd.ExecuteNonQuery();
                    */



                    sql2run = sql2run.Replace("COLLATE NOCASE", "");
                    sql2run = sql2run.Replace(" NUM", " TEXT");
                    SqlCommand cmd2 = new SqlCommand(sql2run, conn);
                    cmd2.ExecuteNonQuery();


                    // insertar los datos.
                    string sqlCmd = "Select *  From " + tabla;
                    SQLiteCommand cmd = new SQLiteCommand(sqlCmd, sqconn);
                    SQLiteDataReader rs = cmd.ExecuteReader();
                    String valor = "";
                    String Valores = "";
                    String Campos = "";
                    String Campo = "";
                    while (rs.Read())
                    {
                        SqlInsert = "INSERT INTO " + tabla;
                        Campos = "";
                        Valores = "";
                        for ( i = 0; i < rs.FieldCount ; i++)
                        {

                            //valor = "" + rs.GetString(i);
                            //valor = "" + rs.GetName(i);
                            Campo = "" + rs.GetName(i);
                            valor = "" + rs.GetValue(i);

                            if (Valores != "")
                            {
                                Valores = Valores + ',';
                                Campos = Campos + ',';
                            }
                            Valores = Valores + "'" + valor + "'";
                            Campos = Campos + Campo;
                        }
                        SqlInsert = SqlInsert + "(" + Campos + ") Values (" + Valores + ")";
                        SqlCommand cmdInsert = new SqlCommand(SqlInsert, conn);
                        cmdInsert.ExecuteNonQuery();


                    }


                }

                }
            return true;
        } //END TRY
        catch (Exception ex)
        {
            _log.Error("unexpected exception", ex);

            throw;

        } // catch
    }
于 2016-11-07T11:10:23.550 に答える