2009-07-16 8 views
1

Ich muss eine Protokolldatei in die SQL Server-Datenbank importieren. Dateigröße ist groß, etwa 6 MB mit 40000 Zeilen. Die Aufgabe des Imports muss jeden Tag mit dem Tagesprotokoll erledigt werden. Jede Zeile der Protokolldatei enthält viele Felder, die ich zur Nachbearbeitung in geeignete Spalten in Database importieren muss. Ich bin verwirrt von diesen Lösungen:von Textdatei in SQL Server-Datenbank importieren, welche Lösung sollte ich wählen?

Verwenden Sie SQL Server Integration Services, um dies zu tun.

-Write eine C# app BULK COPY

Ich bin relativ freie Lösung zu wählen (in SQL Server und .NET-Framework). Welche Lösung ist dafür besser, oder Sie können eine andere vorschlagen.

Vielen Dank.

// Edit: Ich habe versucht SSIS und sah, dass es wirklich einfach ist. Aber jeden Tag, nachdem ich die Protokolldatei erhalten habe, muss mein Programm es automatisch in die Datenbank importieren. Wie kann ich das machen?

+0

Aktualisiert meine Antwort für wie man es plant. – NikolaiDante

Antwort

2

Ich würde ein SSIS-Paket dafür schreiben.

Sie können den Import/Export-Assistenten verwenden, um den Beginn eines Pakets zu generieren und es an Ihre genauen Bedürfnisse anzupassen. Um dies in SQL 2005 zu tun, klicken Sie mit der rechten Maustaste auf Ihre Datenbank im Objekt-Explorer in SQL Management Studio, gehen Sie auf Aufgaben> Daten importieren, folgen Sie dem Assistenten und wählen Sie am Ende die Option zum Speichern des Pakets aus.

Ich stelle mir vor, es ist ein ähnlicher Prozess in SQL 2008, aber ich habe es nicht zur Hand.

Nachdem Sie Ihr Paket gespeichert haben, ist es möglich, es mit dem SQL Server aAgent zu planen. Wählen Sie beim Einrichten des Jobs "SQL Server Integraton Services Package" als Typ aus und wählen Sie Ihr Paket aus.

+0

Können Sie mir ein einfaches Beispiel dafür geben? :) – Vimvq1987

+0

aktualisiert die Antwort – NikolaiDante

+0

Sie antworten ist wirklich hilfreich. Aber ich habe immer noch ein Problem. Der Name der Logdatei wird jeden Tag geändert (in formatierter Form wie 20090705), ich wusste bisher nicht, wie ich das lösen soll. Kannst du mir helfen? – Vimvq1987

1

Ich würde wahrscheinlich ein Skript schreiben, das die Protokolldatei in einen SQL-Dump konvertiert, der die Protokolldateizeichenfolgen einfügt und dann diesen SQL-Dump in die Datenbank lädt.

+0

Das war das erste, was ich dachte. Schreiben Sie ein Skript und planen Sie es. Vielleicht, weil ich Integration Services noch nie benutzt habe ... Ich habe keine Zeit, darüber zu lesen. – Jonathan

1

6MB ist eigentlich ziemlich klein :)

SQL Server Integration Services ist mehr als bis zur Aufgabe. BULK COPY kann sehr schnell kompliziert werden, besonders für Leute, die neu sind. Als dritte Option könnten Sie Ihr eigenes Programm schreiben, um INSERTS zu machen, aber dafür wurde SSIS entwickelt, also bleiben Sie einfach dabei.

Verwandte Themen