是否有一个SQLite数据库迁移到SQL Server(结构和数据两者)的工具吗?从SQLite的导出到SQL Server
回答
SQLite确实有使用.dump选项,在命令行中运行。尽管我更喜欢使用SQLite Database Browser应用程序来管理SQLite数据库。你可以将结构和内容导出到一个.sql文件,它可以被任何东西读取。文件>导出>数据库到SQL文件。
SQLite的.dump
命令将输出数据库中作为一个ASCII文本文件的全部内容。该文件采用标准的SQL格式,因此可以导入到任何SQL数据库中。 此页面上的更多细节:sqlite3
sqlite的经理,Firefox插件:允许您在一个SQL脚本导出一个SQLite数据库。
数据库>导出数据库>导出到文件
(纠错火狐35个巴格有义务纠正扩展代码作为指示以下网页: How to fix your optional sqlite manager module to work)
命令行:
sqlite3 DB_name .dump > DB_name.sql
将SQLite数据库导出到SQL脚本中。
我使用SQLite管理器,Firefox插件 但FK没有在SQL Server中工作,我有一个 我有超过100台有许多FK修改脚本的.. 有没有新的解决办法 感谢
我知道这是旧线,但我认为这个解决方案应该也在这里。
- 安装ODBC驱动程序的SQLite 针对x64或C
- 运行odbcad32:\ WINDOWS \ Syswow64资料\ odbcad32.exe的用于x86
- 创建系统DSN,在那里你选择SQLite3的ODBC驱动程序
- 然后您填写高达形式,其中数据库名称是文件路径到SQLite数据库
然后在SQL Server下的系统管理员运行
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
然后,您可以像普通用户 (例如,
SELECT * INTO SQLServerDATA FROM openquery(SQLiteDNSName, 'select * from SQLiteData')
或者你可以使用类似this的东西来做大表。
一个想法是做一些这样的事情: - 在SQL精简版浏览squema并得到CREATE TABLE命令。 - 在SQL SERVER中执行,解析sql - 旅行数据为每一行创建一个INSERT语句。 (也解析sql)
此代码是测试版,因为没有检测到类型数据,也没有使用@parameter和命令对象,而是运行。
(你需要插入参考,并安装System.Data.SQLite;)
C#: 插入代码(或neccesari)头CS
使用系统;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.SQLite;
using System.Threading;
using System.Text.RegularExpressions;
using System.IO;
使用log4net;
using 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
}
- 1. 将SQL Server数据库导出到sqlite(或SQL Server Compact)的最佳方法
- 2. 我想从SQL Server导出表到mysql
- 3. 如何从SQL Server导出到XML
- 4. 从Oracle导出到SQL Server或mySQL中
- 5. 导出数据从SQL Server到Excel
- 6. 将数据从SQL Server导出到PostgreSQL
- 7. 导出SQL Server表到XML
- 8. 如何将数据库从SQL Server 2008导出到SQL Server 2005
- 9. 查询从SQL Server到SQLite的转换
- 10. 从SQLite导入数据到SQL Server与SqlBulkCopy类
- 11. 导出到PostgreSQL时SQL Server导入和导出向导出错
- 12. SQL Server 2008 Express到SQLite
- 13. 将数据从SQL Server导入和导出到Excel
- 14. 从SQL Server导出数据更新
- 15. 从SQL Server 2005导出CSV文件?
- 16. 从SQL Server 2005 Express Edition导出记录
- 17. 如何从SQL Server导出数据?
- 18. 从SQL Server导出产品和变体
- 19. 从unsortable表查询和导出SQL Server
- 20. 从SQL Server Management Studio导出数据库
- 21. 从Excel导出到带有Excel的SQL Server的多列值列
- 22. hadoop sqoop导出表到sql server错误
- 23. 将excel spreedsheet导出到SQL Server Management Studio
- 24. Sqoop导出到SQL Server:模式?
- 25. sql server 2008导出到mdb问题
- 26. SQL Server导入导出向导(SQL Server Express)
- 27. 加速从SQL Server 2008 R2到Microsoft Access的导出
- 28. 如何将过滤的数据从SQL Server导出到Excel?
- 29. 如何使从SQL Server到CSV的快速导出数据
- 30. 从.sql导入表到SQLite,不完整SQL
导出的文件确实需要对语法差异进行一些调整,但不要太复杂。谢谢 – 2008-10-02 16:09:53
从技术上讲,SQLite shell不是SQLite,而是连接到SQLite的控制台应用程序,它只是一个库。 – Benoit 2011-01-25 17:04:06
这指出我在正确的方向,但我正在寻找的语法,所以我会在这里包括它:`sqlite3 my_db.db -batch“.dump”> my_db.sql` – 2017-04-02 16:59:23