2008-09-09 7 views
0

Ich versuche ein SSIS-Paket zu erstellen, das Daten aus einer XML-Datenquelle aufnimmt und für jede Zeile eine weitere Zeile mit einigen voreingestellten Werten einfügt. Irgendwelche Ideen? Ich denke, ich eine Datareader-Quelle verwenden, könnte die voreingestellten Werte, indem Sie die folgenden erzeugen:Wie fügt man eine Zeile mit SSIS in ein Dataset ein?

SELECT 'foo' as 'attribute1', 'bar' as 'attribute2' 

Die Frage ist, wie würde ich für jede Zeile in der XML-Datenquelle eine Zeile dieses Typs einfügen?

Antwort

1

Ich habe es noch nie ausprobiert, aber es sieht so aus, als könnten Sie einen Derived Column transformation dazu verwenden: Setzen Sie den Ausdruck für Attribut1 auf "foo" und den Ausdruck für Attribut2 auf "bar".

Sie würden dann die ursprüngliche Datenquelle transformieren und dann nur die abgeleiteten Spalten in Ihrem Ziel verwenden. Wenn Sie immer noch die ursprüngliche Quelle benötigen, können Sie sie mit einem Multicast versehen, um ein Duplikat zu erstellen.

Zumindest ich denke, das wird funktionieren, basierend auf der Dokumentation. YMMV.

2

Ich bin mir nicht sicher, ob ich verstehe die Frage ... Meine Vermutung ist, dass Sie n Anzahl der Datensätze kommt in SSIS aus Ihrer Datenquelle, und Sie möchten Ihre Ausgabe n * 2 Datensätze haben .

Um dies zu tun, können Sie wie folgt vorgehen:

  • Multicast mehrere Kopien Ihrer Eingangsdaten
  • abgeleitete Spalte die „Preset“ Werte auf den Kopien
  • einzustellen verwandelt zu erstellen
  • Art
  • fusionieren

Bin ich auf dem richtigen Weg w /, was Sie erreichen wollen?

+0

Dies scheint eine sehr saubere Möglichkeit, es zu tun. –

0

Ich würde wahrscheinlich zu einer Skriptaufgabe wechseln und Ihre Logik dort hineinlegen. Sie können das File Reading und andere Objekte in SSIS weiterhin verwenden, um etwas Code zu speichern.