Есть ли инструмент для переноса базы данных SQLite в SQL Server (как структура, так и данные)?
Экспорт из SQLite в SQL Server
Ответ 1
SQLite имеет параметр .dump для запуска в командной строке. Хотя я предпочитаю использовать приложение SQLite Database Browser для управления базами данных SQLite. Вы можете экспортировать структуру и содержимое в файл .sql, который можно прочитать практически ни о чем. Файл > Экспорт > База данных в файл SQL.
Ответ 2
Я знаю, что это старый поток, но я думаю, что это решение также должно быть здесь.
- Установите драйвер ODBC для SQLite
- Запустите odbcad32 для x64 или C:\Windows\SysWOW64\odbcad32.exe для x86
- Создайте SYSTEM DSN, где вы выбираете драйвер SQLite3 ODBC
- Затем вы заполняете форму, в которой имя базы данных является файловым путем для базы данных sqlite.
Затем в SQL Server запустите 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
Затем вы можете запускать свои запросы как обычный пользователь например.
SELECT * INTO SQLServerDATA FROM openquery(SQLiteDNSName, 'select * from SQLiteData')
или вы можете использовать что-то вроде this для больших таблиц.
Ответ 3
Команда SQLite .dump
выводит все содержимое базы данных в виде текстового файла ASCII. Этот файл находится в стандартном формате SQL, поэтому его можно импортировать в любую базу данных SQL.
Подробнее об этой странице: sqlite3
Ответ 4
sqlite-manager, добавление firefox: позволяет экспортировать базу данных SQLite в SQL script.
База данных > Экспорт базы данных > Экспорт в файл
(Исправление firefox 35 bugg обязано исправить код расширения, как указано на следующей веб-странице: Как исправить ваш дополнительный модуль диспетчера sqlite для работы)
Командная строка:
sqlite3 DB_name .dump > DB_name.sql
экспортирует базу данных sqlite в SQL script.
От url: http://doc.ubuntu-fr.org/sqlite.
Ответ 5
Я использую sqlite-manager, дополнение Firefox но Fk не работает на сервере sql. Мне нужно изменить script один за другим У меня более 100 столов со многими FK.. есть новая работа вокруг спасибо
Ответ 6
Идея заключается в следующем: - Просмотрите сжатие в sql lite и получите команду CREATE TABLE. - Выполнить, разбор sql, в SQL SERVER - Данные о путешествиях, создающие запись INSERT для каждой строки. (разбор sql тоже)
Этот код является бета-версией, потому что нет данных типа обнаружения и не используется @parameter и объект команды, но выполняется.
(Вам нужно вставить ссылку и установить System.Data.SQLite;)
С#: Вставьте этот код (или neccesari) в голову cs
с помощью System;
используя 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
}
Ответ 7
Для Android.
adb root
adb shell
cd /data/com.xxx.package/databases/
sqlite3 db_name .dump >dump.sql
Ответ 8
Экспорт из SQLite в SQL Server можно выполнить двумя способами: -
1) Создание связанного сервера SQL Server с SQLite для импорта данных
Шаги, которым нужно следовать: -
а) Загрузите драйвер ODBC для SQLite
б) установить драйвер
c) Создайте системный DSN для базы данных: -
* Нажмите Start Run и введите odbcad32 и нажмите return для 64-битного администратора.
* Нажмите Пуск Выполнить и введите C:\Windows\SysWOW64\odbcad32.exe и нажмите клавишу возврата для 32-разрядного администратора.
* Нажмите на вкладку Системный DSN.
* Нажмите Добавить.
* Выберите подходящий драйвер. Если вы не знаете, какой использовать, попробуйте по очереди.
* Введите путь к базе данных SQLite.
г) Создать связанный сервер в SQL Server
Просто используйте этот T-SQL для создания связанного сервера с вашей базой данных SQLite: -
"
USE [master]
GO
EXEC sp_addlinkedserver
@server = 'Mobile_Phone_DB_64', -- the name you give the server in SSMS
@srvproduct = '', -- Can be blank but not NULL
@provider = 'MSDASQL',
@datasrc = 'Mobile_Phone_DB_64' -- the name of the system dsn connection you created
GO
e) Select the data from the source and insert it into a SQL Server database table
* Click on the linked server system and expand it all the way to tables.
* Simply query the tables:-
Select *
from openquery(Mobile_Phone_DB_64 , 'select * from db_notes')
GO
* You can create a table in your destination SQL Server with this sort of TSQL:
Select * into SQLite_Data
from openquery(Mobile_Phone_DB_64 , 'select * from db_notes')
GO
'
'
2) Экспорт из SQLite в SQL Server также можно легко выполнить с помощью программного обеспечения "Сделай сам" под названием "Stellar Converter for Database", с помощью которого вы можете напрямую выбрать исходный файл базы данных, то есть файл базы данных SQLite, и он затем предоставит вам предварительный просмотр конвертируемых таблиц и сохраните его в месте назначения, т.е. в вашей системе установлен SQL Server.