Ist es möglich, eine SQLite-Datenbank in Microsoft SQL Server Management Studio zu öffnen?

44197
Brian T Hannan

Gibt es eine Möglichkeit, eine .db-Datei (SQLite-Datenbankdatei) in Microsoft SQL Server Management Studio zu öffnen?

Im Moment haben wir einen Prozess, der die Daten aus einer Microsoft SQL Server-Datenbank holt und in eine SQLite-Datenbankdatei speichert, die später von einer Anwendung verwendet wird.

Gibt es eine Möglichkeit, die SQLite-Datenbankdatei zu öffnen, damit sie mit den Daten in der SQL Server-Datenbank mit nur einer SQL-Abfrage verglichen werden kann?

Gibt es ein Plug-In für Microsoft SQL Management Studio? Oder es gibt eine andere Möglichkeit, diese Aufgabe mit nur einer Abfrage auszuführen.

Im Moment müssen wir zwei Skripts schreiben, eines für die SQL Server-Datenbank und eines für die SQL Datenbank, und dann die Ausgabe von jedem im gleichen Format und in eine eigene OpenOffice-Kalkulationstabellendatei schreiben. Abschließend vergleichen wir die beiden Dateien, um festzustellen, ob es Unterschiede gibt. Vielleicht gibt es einen besseren Weg, dies zu tun.

Bearbeiten: Die Tabellenspalten und -layouts sind unterschiedlich, sodass die Kombination von http://www.codeproject.com/KB/database/convsqlservertosqlite.aspx und http://www.sqlitecompare.com/ hier nicht funktioniert.

PS Viele Anwendungen verwenden SQLite intern: Bekannte SQLite -Benutzer

29
Haben Sie die SQL Server Compact / SQLite-Toolbox https://visualstudiogallery.msdn.microsoft.com/0e313dfd-be80-4afb-b5e9-6e74d369f7a1 ausprobiert SarjanWebDev vor 9 Jahren 1
Haben Sie es versucht, bevor Sie uns gefragt haben? Wenn Sie keine Sqlite-Datenbank haben, um es auszuprobieren, ist dies ein gutes Beispiel ... https://chinookdatabase.codeplex.com/downloads/get/557773 Mawg vor 9 Jahren 0

7 Antworten auf die Frage

12
Mark

Hallo, es ist möglich, jeden SQL-Server aus dem Management Studio zu öffnen, wenn Sie über den richtigen Odbc-Treiber verfügen. Erstellen Sie eine ODBC-Verbindung zur * .db3-Datei, nennen Sie sie SQLite und versuchen Sie es mit einem Abfragefenster

- muss eine system odbc verbindung sein, nicht benutzer

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 

So erhalten Sie die Daten. Sie können auch Ansichten erstellen, wenn Sie möchten

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

7
ta.speot.is

Sie können einen Verbindungsserver erstellen, wenn Sie einen Anbieter für SQLite haben, den SQL Server akzeptiert.

Stellen Sie eine Verbindung zu Ihrer Datenbank her, navigieren Sie durch "Serverobjekte", "Verbindungsserver" und fügen Sie einen neuen Verbindungsserver hinzu. Anschließend können Sie SQL Server verwenden, um die SQLite-Datenbank abzufragen und die Ergebnisse direkt zu vergleichen.

Hier ist ein Tutorial für MySQL. Wenn Sie also eine ODBC-Verbindung für SQLite erstellen können, sind Sie gut aufgestellt.

7
PaloDravecky

Wenn Sie kein System-DNS installieren können, sollten die folgenden Schritte funktionieren:

  1. Installieren Sie den SQLite ODBC-Treiber von Ch. Werner (beide 32 und 64 Bit?)
  2. Gehen Sie in SSMS zu Serverobjekte> Verbindungsserver> Neuer Verbindungsserver ... Neuer verknüpfter Server ...
  3. Im Fenster geben Sie ein:
    • Verknüpfter Server: BEISPIEL (oder irgendetwas)
    • Provider: Microsoft OLE DB-Provider für ODBC-Treiber
    • Produktname: Beispiel (oder irgendetwas)
    • Anbieterzeichenfolge: Driver=SQLite3 ODBC Driver;Database=full/path/to/db; Eigenschaften des verknüpften Servers

Sie sollten jetzt die SQLite-Datenbank mit abfragen können

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

wie oben erwähnt.

Verwenden Sie für alle, die diese Methode verwenden, Schrägstriche anstelle von umgekehrten Schrägstrichen im vollständigen Pfad zu db gordy vor 7 Jahren 0
3
maplemale

Das OP fragt nach einem Weg, um zwischen DBs abzufragen, und ich verstehe die Antworten des Verbindungsservers. Wenn Sie jedoch hier sind, weil Sie einfach eine SQLite-Datenbank mit MSSMS öffnen möchten, ist dies viel einfacher.

Nennen Sie mich faul, aber alle diese Antworten sind etwas mühsam und / oder erfordern Dinge, die Sie möglicherweise nicht tun möchten, in jedem Fall Zugriff haben oder nur das Falsche sind, wenn alles, was Sie suchen, etwas Besseres ist als DB Browser For SQLite wie MSSMS.

Verwenden Sie einfach folgendes: SQLServerCompactSQLiteToolboxforSSMS

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

Öffnen Sie die Compact Toolbox Öffnen Sie die Compact Toolbox

Verbindung hinzufügen Verbindung hinzufügen

Navigieren Sie zu der Datei

1
Mircea

Es ist möglich, eine andere Art von Datenbank in Management Studio zu öffnen. Ich habe eine Informix-Datenbank mit einem Verbindungsserver zum Informix-Server geöffnet.

1
Jonathan

You'll need an ODBC driver for SQLite before you can set up a linked server, but once you have one of those installed on your sql server, it's relatively easy to set up a linked server using it.

Example using "SpiceWorks" SQLite database

-3
Salar

Da SQLite eine eingebettete Datenbank ist, ist es nicht möglich, sie in Management Studio zu öffnen. Und ich glaube nicht, dass ein anderer Datenbankserver als SQLServer vom Management Studio aus geöffnet werden kann!

Als Lösung können Sie den SQLite Ado.NET Provider von hier http://sqlite.phxsoftware.com/ verwenden.

Sie können eine gespeicherte CLR-Prozedur für Ihre Datenbank schreiben, die den obigen Provider für die Konvertierungen verwendet. Am Ende sollte alles in einer Abfrage erledigt werden.

Sie können SQL compact zumindest mit SSMS öffnen. m4tt1mus vor 12 Jahren 0
@mattimus: Wir reden hier über SQLite !! nicht SQL Server Compact! Salar vor 12 Jahren 0
@ SalarKhalilzadeh und in Ihrer Antwort haben Sie gesagt: "Und ich glaube nicht, dass ein anderer Datenbankserver als SQLServer vom Management Studio aus geöffnet werden kann!", Sie sind falsch. m4tt1mus vor 12 Jahren 2