2009-04-25 5 views
0

Ich rufe eine gespeicherte Prozedur von einer OLE DB-Datenquelle in SSIS auf. Warum sieht SSIS keine Änderungen, die ich an der gespeicherten Prozedur vorgenommen habe? Es scheint, dass Metadaten über die gespeicherte Prozedur irgendwo zwischengespeichert werden. Ist es im Cache gespeichert? Wenn ja, wie erzwinge ich SSIS, die Änderungen zu sehen, die ich an der gespeicherten Prozedur vorgenommen habe?Warum aktualisiert eine OLE DB-Datenquelle Metadaten nicht, wenn sich die gespeicherte Prozedur ändert?

Antwort

0

Es ist möglich, dass das Problem nicht darin besteht, dass SSIS Ihre Änderungen nicht sehen kann. Aber das, was Sie verändern, ist für SSIS nicht sichtbar.

Um diese sehr verwirrende Antwort zu verdeutlichen, versuchen Sie Folgendes: Ziehen Sie eine OLE DB-Datenquelle auf einen Datenfluss. Verbinden Sie es mit derselben gespeicherten Prozedur, mit denselben Parametern usw. Überprüfen Sie die Metadaten für die Ausgabespalten.

Wenn sie das sind, was Sie erwartet haben, dann ist das Problem, dass SSIS Ihre Änderungen nicht sieht. Ich bin überrascht, wenn dies die Antwort ist - wenn überhaupt, SSIS ist zu wählerisch über Änderungen in Metadaten (vor allem in der 2005-Version).

Wenn Sie die erwarteten Metadaten nicht sehen, müssen Sie Ihren Beitrag mit weiteren Einzelheiten zu Ihrer gespeicherten Prozedur bearbeiten. Aber ich kann generell sagen, dass weder SSIS noch irgendeine andere Software die Form Ihrer Ergebnismenge in allen Fällen bestimmen kann. Ich glaube, sie verwenden den SET FMTONLY-Befehl, um zu arrangieren, dass Abfragen "nicht wirklich" ausgeführt werden. Stattdessen werden sie für alle ihre Parameter NULL übergeben. Die Ergebnismenge, die auftritt, wenn alle Parameter NULL oder Standardwerte sind, wird von SSIS angezeigt. Wenn Sie einen komplizierten SP haben, der Ergebnismengen unterschiedlicher Formen basierend auf der Eingabe zurückgibt, könnte dies das Problem sein.

0

Um die Metadaten neu zu generieren, löschen Sie einfach die Flussleitung (rot und grün) und fügen Sie sie erneut hinzu. Dies ist die einfachste Lösung, die ich für dieses Problem gefunden habe.

Verwandte Themen