verwendetes Datenbanksystem: SQL Server 2005
Hallo, ich möchte eine Textdatei regelmäßg in einer Datenbank speichern.
Den Inhalt der Textdatei muss ich modifizieren, daher reicht der Import-Assitent des SS nicht.
Es handelt sich um 30.000 - 50.000 Datensätze à 6 Attribute
Ich möchte gerne eine Stored Procedure für den Import nutzen. (um die Anwendung von der Datenbank zu koppeln) Weiterhin will ich den Insert per Transaktion durchführen.
Mein Problem ist das Vorgehen. Sollte ich ein DataSet mit den verarbeiteten Daten füllen und das einfügen? Oder wäre eine andere Datenstruktur geeigneter? Wenn ja, welche?
Wie man eine SP zum speichern eines DataSets benutzt ist mir auch noch nicht klar.
Schon einmal vielen Dank für eure Hilfe.
Hi,
versuch das mal im SQL Server Managmement Studio
DB -> Verwaltung -> Legacy -> Data Transformation Services
Die sind genau dafür geschaffen.
MfG
Björn
Das Leben ist schön!
dafür muss vermutlich der Integration Service installiert sein, was nicht der Fall ist.
Hallo,
Sollte ich ein DataSet mit den verarbeiteten Daten füllen und das einfügen? Oder wäre eine andere Datenstruktur geeigneter? Wenn ja, welche?
Wenn du dich mit DataSets gut auskennst verwende diese, kennst du dich mit einem O/R-Mapper aus dann verwende diesen.
Ich würde die *.txt einlesen (File.ReadLines) und dann Objekte erzeugen welche die Daten aus der Datei halten. Diese Objekte modifizieren und dann per Linq2Sql per Stored Procedure an die DB übertragen.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo Realnub,
das willst du doch erreichen ?(
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Ich habe mich unglücklich asugedrückt.
mit diesem Vorgehen würde jeder Datensatz/Zeile einzelnen eingefügt? Ist das nicht nachteilig? Bzw. geht es auch als "Batchjob"?
Hallo,
Bzw. geht es auch als "Batchjob"?
Such mal nach BULK INSERT.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Mir ist noch immer unklar was du möchtest, möchtest du das TXT vorher in eine Datenbank importieren und dann bearbeiten? Oder möchtest du das TXT vorher, bevor es im SQL Server importiert wird, manipulieren?
Lion
lg Lion
Ich möchte täglich den Inhalt einer Textdatei in einer Datenbank speichern, wobei dieser vorher Manipuliert wird. (Zusammenfassen von Zeilen, ändern von Werten).
Es läuft nun Alles und ist mehr als zufriedenstellend schnell.
Für die Lösung mittels DataTable habe ich mich entscheiden.
Um das DataTable in die DB zu schieben nutzen ich einen SqlDataAdapter, der ein InsertSqlCommand verpasst bekommen hat. Mit SqlDataAdapter.Update(DataTable) werden die Daten in die Datenbank geschoben. Ist dieser Weg von Hause aus Transaktionssicher oder ist es erforderlich dem SqlCommand eine Transaktion mit zu geben und commit/rollback bswp. in einerm try-catch Block zu machen?
Hallo,
Ist dieser Weg von Hause aus Transaktionssicher oder ist es erforderlich dem SqlCommand eine Transaktion mit zu geben und commit/rollback bswp. in einerm try-catch Block zu machen?
Standardmäßig läuft jedes einzelne INSERT in einer Transaktion, daher wäre es durchaus sinnvoll die gesamten INSERTs in einer Transaktion zu klammern so wie du angedacht hast. Schau dir aber trotzdem mal BULK INSERT an - ist noch schneller 😉
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"