首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从SQLite导出到SQL Server

从SQLite导出到SQL Server
EN

Stack Overflow用户
提问于 2008-10-02 15:41:18
回答 4查看 87.9K关注 0票数 34

是否有工具可以将SQLite数据库迁移到SQL Server (包括结构和数据)?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-02 15:48:55

SQLite有一个可以在命令行运行的.dump选项。尽管我更喜欢使用SQLite Database Browser应用程序来管理SQLite数据库。您可以将结构和内容导出到几乎任何人都可以读取的.sql文件。文件>导出>数据库到SQL文件。

票数 41
EN

Stack Overflow用户

发布于 2008-10-02 15:51:57

SQLite .dump命令将数据库的全部内容输出为ASCII码文本文件。此文件为标准SQL格式,因此可以导入到任何SQL数据库中。更多详细信息请访问此页面:sqlite3

票数 9
EN

Stack Overflow用户

发布于 2016-11-07 19:10:24

一个想法是这样做:-在sql lite中查看squema并获取CREATE TABLE命令。-在sql SERVER中执行,解析SQL -旅行数据为每行创建一个INSERT语句。(也解析sql )

这段代码是测试版的,因为没有检测到类型数据,也没有使用@参数和命令对象,而是运行。

(需要插入引用并安装System.Data.SQLite;)

c#:在head cs中插入此代码(或neccesari)

使用系统;

使用System.Collections.Generic;

使用System.Text;

使用System.Data;

使用System.Data.SqlClient;

使用System.Data.SQLite;

使用System.Threading;

使用System.Text.RegularExpressions;

使用System.IO;

使用log4net;

使用System.Net;

代码语言:javascript
复制
    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
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/163079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档