Pergunta

Existe uma ferramenta para migrar um href="http://en.wikipedia.org/wiki/SQLite" rel="noreferrer"> SQLite banco de dados para SQL Server (tanto a estrutura e dados)?

Foi útil?

Solução

SQLite tem uma opção de .dump para executar na linha de comando. Embora eu prefiro usar o banco de dados SQLite aplicativo navegador para gerenciar bancos de dados SQLite. Você pode exportar a estrutura e conteúdo para um arquivo .sql que pode ser lido por praticamente qualquer coisa. File> Export> Banco de Dados para o arquivo SQL.

Outras dicas

Eu sei que este é discussão antiga, mas eu acho que essa solução deve ser também aqui.

  • Instale o driver ODBC para SQLite
  • Executar odbcad32 para x64 ou C: \ Windows \ SysWOW64 \ odbcad32.exe para x86
  • Criar um sistema DSN, onde você seleciona o driver ODBC SQLite3
  • Em seguida, você preencher formulário onde banco de dados Nome é filepath ao banco de dados SQLite

Então, em SQL Server executado sob sysadmin

USE [master]
GO
EXEC sp_addlinkedserver 
   @server     = 'OldSQLite', -- connection name
   @srvproduct = '',          -- Can be blank but not NULL
   @provider   = 'MSDASQL', 
   @datasrc    = 'SQLiteDNSName' -- name of the system DSN connection 
GO

Em seguida, você pode executar suas consultas como usuário normal por exemplo.

SELECT * INTO SQLServerDATA FROM openquery(SQLiteDNSName, 'select * from SQLiteData')

ou você pode usar algo como este para tabelas maiores.

A saída de comando .dump SQLite todo o conteúdo do banco de dados como um arquivo de texto ASCII. Este arquivo está no formato padrão SQL, para que ele possa ser importado para qualquer banco de dados SQL. Mais detalhes nesta página: sqlite3

sqlite-manager , firefox add-on:. Permite exportar um banco de dados SQLite em um script SQL

Base de dados> Exportar base de dados> Exportar para arquivo

(Correcção firefox 35 bugg obrigado a corrigir o código de extensão como indicam a seguinte página web: Como corrigir o seu módulo gerente sqlite opcional ao trabalho )

linha de comando :

sqlite3 DB_name .dump > DB_name.sql

exporta o banco de dados SQLite em um script SQL.

De url: http: //doc.ubuntu- fr.org/sqlite .

A idéia é fazer alguma coisa como esta: - Ver squema em Lite sql e obter o comando CREATE TABLE. - Executar, análise sql, no SQL Server - dados de viagens, criando uma indicação INSERIR para cada linha. (Análise sql também)

Este código é beta, porque não detectar dados de tipo, e nenhum objeto uso @Parameter e comando, mas prazo.

(Você precisa inserir referência e instalar System.Data.SQLite;)

c #: Insira este código (ou neccesari) na cabeça cs

using System;

utilizando System.Collections.Generic;

using System.Text;

usando System.Data;

using System.Data.SqlClient;

usando System.Data.SQLite;

using System.Threading;

usando System.Text.RegularExpressions;

usando System.IO;

usando log4net;

usando 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
    }

Para Android.

adb root
adb shell
cd /data/com.xxx.package/databases/
sqlite3 db_name .dump >dump.sql
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top