Можно ли открыть базу данных SQLite из Microsoft SQL Server Management Studio?

43894
Brian T Hannan

Есть ли способ открыть файл .db (файл базы данных SQLite) из Microsoft SQL Server Management Studio?

Прямо сейчас у нас есть процесс, который будет собирать данные из базы данных Microsoft SQL Server и помещать их в файл базы данных SQLite, который впоследствии будет использоваться приложением.

Есть ли способ открыть файл базы данных SQLite, чтобы его можно было сравнить с данными в базе данных SQL Server ... используя только один запрос SQL?

Есть ли плагин для студии управления Microsoft SQL? Или, может быть, есть другой способ выполнить ту же задачу, используя только один запрос.

Сейчас нам нужно написать два сценария: один для базы данных sql-сервера и один для базы данных sqlite ... затем взять выходные данные каждого из них в одном и том же формате и поместить их каждый в отдельный файл электронной таблицы OpenOffice. Наконец, мы сравниваем два файла, чтобы увидеть, есть ли различия. Возможно, есть лучший способ сделать это.

Изменить. Столбцы и макеты таблиц отличаются, поэтому использование http://www.codeproject.com/KB/database/convsqlservertosqlite.aspx и http://www.sqlitecompare.com/ не будет работать здесь.

PS Многие приложения используют SQLite для внутреннего использования: известные пользователи SQLite

29
Вы пробовали SQL Server Compact / SQLite Toolbox https://visualstudiogallery.msdn.microsoft.com/0e313dfd-be80-4afb-b5e9-6e74d369f7a1 SarjanWebDev 8 лет назад 1
Вы пробовали это прежде, чем спросить нас? Если у вас нет базы данных Sqlite, чтобы попробовать ее, это хороший пример ... https://chinookdatabase.codeplex.com/downloads/get/557773 Mawg 8 лет назад 0

7 ответов на вопрос

12
Mark

Привет Да, можно открыть любой сервер sql из Management Studio, если у вас есть правильный драйвер odbc для этого. Создайте ODBC-соединение с файлом * .db3 и назовите его как SQLite, затем попробуйте это окно запроса

- должно быть соединение системы odbc, а не пользователь

EXEC sp_addlinkedserver  @server = 'SQLite', -- the name you give the server in studio  @srvproduct = '', @provider = 'MSDASQL',  @datasrc = 'SQLite' -- the name of the system odbc connection you created GO 

Это то, как вы получаете данные, вы можете создавать представления, используя этот sql, если хотите

SELECT * FROM OPENQUERY (SQLite, «SELECT * FROM tbl_Postcode»)

7
ta.speot.is

Возможно, вы захотите создать связанный сервер, если у вас есть поставщик SQLite, который будет принимать SQL Server.

Подключитесь к своей базе данных, затем перейдите через «Объекты сервера», «Связанные серверы» и добавьте новый связанный сервер. Затем вы можете использовать SQL Server для запроса базы данных SQLite и непосредственного сравнения результатов.

Вот учебник для MySQL, так что если вы можете создать ODBC-соединение для SQLite, вам будет хорошо.

7
PaloDravecky

Если вы не можете установить системный DNS, тогда должны работать следующие шаги:

  1. Установите драйвер ODBC для SQLite из Ch. Вернер (32-х и 64-х битный?)
  2. В SSMS перейдите на Объекты сервера> Связанные серверы> Новый связанный сервер ... New linked server...
  3. В окне введите:
    • Связанный сервер: ПРИМЕР (или что-нибудь)
    • Поставщик: поставщик Microsoft OLE DB для драйверов ODBC
    • Название продукта: пример (или что-нибудь)
    • Строка поставщика: Driver=SQLite3 ODBC Driver;Database=full/path/to/db; Linked Server Properties

Теперь вы должны иметь возможность запрашивать базу данных SQLite с

SELECT * FROM OPENQUERY(EXAMPLE, 'SELECT * FROM tbl_Postcode;') 

как уже упоминалось выше.

для тех, кто использует этот метод, используйте прямые косые черты вместо обратных косых черт в полном пути к базе данных gordy 7 лет назад 0
3
maplemale

ОП запрашивает способ запроса между БД, и поэтому я понимаю ответы связанных серверов. Однако, если вы здесь, потому что вы просто хотите открыть базу данных SQLite с помощью MSSMS, это намного проще, чем это.

Называйте меня ленивым, но все эти ответы являются довольно трудоемкими и / или требуют действий, которые вы, возможно, не хотите делать, иметь доступ к делу в каждом случае или просто неправильные действия, если все, что вы ищете, является чем-то лучшим чем браузер БД для SQLite, таких как MSSMS.

Просто используйте это: SQLServerCompactSQLiteToolboxforSSMS

https://marketplace.visualstudio.com/items?itemName=ErikEJ.SQLServerCompactSQLiteToolboxforSSMS#overview

Откройте компактную панель инструментов Open the Compact Toolbox

Добавить соединение add connection

Перейдите к файлу

enter image description here

1
Mircea

Можно открыть другой тип базы данных в Management Studio. Я открыл базу данных Informix, используя связанный сервер с сервером Informix.

1
Jonathan

Вам понадобится ODBC-драйвер для SQLite, прежде чем вы сможете настроить связанный сервер, но как только вы установите один из них на ваш sql-сервер, сравнительно легко настроить связанный сервер с его использованием.

Пример использования базы данных SQLite "SpiceWorks"

-3
Salar

Поскольку SQLite является встроенной базой данных, ее невозможно открыть в Management Studio. И я не верю, что какой-либо сервер баз данных, кроме SQLServer, можно открыть из студии управления!

В качестве решения вы можете использовать SQLite Ado.NET Provider здесь http://sqlite.phxsoftware.com/

Вы можете написать хранимую процедуру CLR для своей базы данных, которая использует вышеуказанного провайдера для выполнения преобразований. В конце все должно быть сделано в одном запросе.

Вы можете открыть SQL Compact с SSMS по крайней мере. m4tt1mus 12 лет назад 0
@mattimus: мы говорим о SQLite здесь !! не SQL Server Compact! Salar 12 лет назад 0
@ SalarKhalilzadeh, и в своем ответе вы сказали: «И я не верю, что какой-либо сервер базы данных, кроме SQLServer, может быть открыт из среды управления!», Вы не правы. m4tt1mus 12 лет назад 2