Ich habe an einem riesigen ETL-Projekt mit über 150 Tabellen gearbeitet und während des Entwurfs musste ich die Namen und Datentypen der Zielspalten für ein paar Tabellen ändern.
Mein Problem ist, dass ich SSIS nicht erhalten kann, um das neue Schema für die Tabellen zu sehen, die ich geändert habe. Ich würde gerne wissen, wie bekomme ich SSIS, um dieses Schema zu aktualisieren? Ich finde es irgendwie lächerlich, dass es SSIS nicht erlaubt, die Metadaten aus dem Datenbankschema zu aktualisieren, besonders für die Datenbankmigration.
Das Projekt von Grund auf neu zu erstellen kommt nicht in Frage, da ich schon einige Stunden damit verbracht habe. Auch das manuelle Ändern der über 400 Spalten, die ich geändert habe, ist ebenfalls keine Option.
Nach meiner vorherigen automatischen Antwort habe ich schließlich festgestellt, was die Aktualisierung der Metadaten verhindert hat.
Als ich meine Datenbank ursprünglich geändert habe, habe ich tatsächlich ein anderes Skript ausgeführt, das ein DROP
für die Tabelle erstellt und dann ein CREATE TABLE
, um die Tabelle von Grund auf neu zu erstellen. Dort war SSIS nie in der Lage, Änderungen zu erkennen, und ich musste alle Dinge in meiner anderen Antwort erledigen.
Später musste ich noch ein paar kleine Änderungen vornehmen und diesmal habe ich mich für ALTER TABLE
entschieden. Magisch, dieses Mal entdeckte SSIS alle Änderungen und informierte mich sogar, Spalten aus dem erweiterten Editor zu aktualisieren, was gut funktionierte.
Im Grunde sind all diese Probleme auf mein schlechtes Wissen über DBA und seine Best Practices zurückzuführen.
Ich habe einen Weg gefunden, es zu reparieren, aber das war ein bisschen schwierig.
Auch wenn ich alle Referenzen der Tabelle vollständig aus meinen Paketen entfernt habe, bekam ich immer die alten Metadaten.
Ich habe immer noch keine klare Lösung, aber hier ist, was ich getan habe, um es zu beheben:
Ich weiß nicht, wo diese Informationen zwischengespeichert wurden, aber ich vermute, dass der Ordner obj eine zwischengespeicherte Kopie Ihrer Pakete enthält oder dass Visual Studio Metadaten im Speicher behält, die beim Schließen freigegeben werden. Wie auch immer, die folgenden Schritte sollten es beheben.