Czy można otworzyć bazę danych SQLite z poziomu Microsoft SQL Server Management Studio?

33

Czy istnieje sposób otwarcia pliku .db (plik bazy danych SQLite) z poziomu Microsoft SQL Server Management Studio?

W tej chwili mamy proces, który pobierze dane z bazy danych Microsoft SQL Server i umieści je w pliku bazy danych SQLite, który będzie później używany przez aplikację.

Czy istnieje sposób otwarcia pliku bazy danych SQLite, aby można go było porównać z danymi w bazie danych SQL Server ... używając tylko jednego zapytania SQL?

Czy istnieje wtyczka do studia Microsoft SQL Management? A może istnieje inny sposób wykonania tego samego zadania przy użyciu tylko jednego zapytania.

W tej chwili musimy napisać dwa skrypty ... jeden dla bazy danych serwera sql i jeden dla bazy danych sqlite ... następnie weź dane wyjściowe z każdego w tym samym formacie i umieść je w osobnym pliku arkusza kalkulacyjnego OpenOffice. Na koniec porównujemy dwa pliki, aby sprawdzić, czy są jakieś różnice. Być może jest na to lepszy sposób.

Edycja: kolumny i układy tabeli są różne, więc użycie kombinacji http://www.codeproject.com/KB/database/convsqlservertosqlite.aspx i http://www.sqlitecompare.com/ nie będzie tutaj działać.

PS Wiele aplikacji korzysta wewnętrznie z SQLite: znani użytkownicy SQLite

Brian T. Hannan
źródło
1
Czy próbowałeś programu SQL Server Compact / SQLite Toolbox visualstudiogallery.msdn.microsoft.com/…
SarjanWebDev
Próbowałeś, zanim nas zapytałeś? Jeśli nie masz bazy danych Sqlite do wypróbowania, jest to dobra próbka ... chinookdatabase.codeplex.com/downloads/get/557773
Mawg

Odpowiedzi:

13

Cześć Tak, możliwe jest otwarcie dowolnego serwera SQL z poziomu studia zarządzania, jeśli masz do tego odpowiedni sterownik odbc. Utwórz połączenie ODBC z plikiem * .db3 i nazwij to jak SQLite, a następnie spróbuj to okno zapytań

- musi to być systemowe połączenie odbc, a nie użytkownik

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

W ten sposób otrzymujesz dane, możesz również tworzyć widoki przy użyciu tej sql, jeśli chcesz

SELECT * FROM OPENQUERY (SQLite, 'SELECT * FROM tbl_Postcode')

znak
źródło
13

OP prosi o sposób zapytania między bazami danych, więc rozumiem odpowiedzi serwera połączonego. Jeśli jednak jesteś tutaj, ponieważ po prostu chcesz otworzyć bazę danych SQLite za pomocą MSSMS, jest to o wiele łatwiejsze.

Nazywaj mnie leniwym, ale wszystkie te odpowiedzi są dość pracochłonne i / lub wymagają rzeczy, których możesz nie chcieć robić, mieć do nich dostęp w każdym przypadku lub są po prostu niewłaściwe, jeśli wszystko, czego szukasz, jest lepsze niż przeglądarka DB dla SQLite, takiego jak MSSMS.

Wystarczy użyć tego: SQLServerCompactSQLiteToolboxforSSMS

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

Otwórz Compact Toolbox Otwórz Compact Toolbox

Dodaj połączenie dodaj połączenie

Przejdź do pliku

wprowadź opis zdjęcia tutaj

maplemale
źródło
7

Możesz utworzyć serwer połączony, jeśli masz dostawcę SQLite, który SQL Server zaakceptuje.

Połącz się z bazą danych, a następnie nawiguj przez „Obiekty serwera”, „Połączone serwery” i dodaj nowy połączony serwer. Następnie można użyć programu SQL Server do przeszukiwania bazy danych SQLite i bezpośredniego porównywania wyników.

Oto samouczek dla MySQL, więc jeśli możesz utworzyć połączenie ODBC dla SQLite, dobrze będzie zacząć.

ta.speot.is
źródło
7

Jeśli nie możesz zainstalować Systemowego DNS, następujące kroki powinny działać:

  1. Zainstaluj sterownik SQLite ODBC z Ch. Werner (zarówno 32-, jak i 64-bitowy?)
  2. W SSMS przejdź do Obiekty serwera> Połączone serwery> Nowy połączony serwer ... Nowy połączony serwer ...
  3. W oknie wpisz:
    • Połączony serwer: PRZYKŁAD (lub cokolwiek)
    • Dostawca: Microsoft OLE DB Provider dla sterowników ODBC
    • Nazwa produktu: przykład (lub cokolwiek)
    • Ciąg dostawcy: Driver=SQLite3 ODBC Driver;Database=full/path/to/db; Właściwości połączonego serwera

Powinieneś teraz mieć możliwość zapytania do SQLite DB za pomocą

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

jak wspomniano powyżej.

PaloDravecky
źródło
dla każdego, kto używa tej metody, używaj ukośników zamiast ukośników odwrotnych w pełnej ścieżce do db
gordy
1

Możliwe jest otwarcie innego typu bazy danych w Management Studio. Otworzyłem bazę danych Informix, używając połączonego serwera z serwerem Informix.

Mircea
źródło
1

Będziesz potrzebował sterownika ODBC dla SQLite, zanim będziesz mógł skonfigurować serwer połączony, ale kiedy już masz jeden z nich zainstalowany na serwerze sql, stosunkowo łatwo można go skonfigurować przy użyciu serwera połączonego.

Przykład użycia bazy danych SQLite „SpiceWorks”

Jonathan
źródło