Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann man mit einem SSIS-Paket nur Dateien durchlaufen, die im Ziel nicht vorhanden sind?

Hier ist eine mögliche Lösung mit zwei Annahmen:

  1. Alle Dateien im Zielordner wurden von diesem Paket verschoben.
  2. Die Dateinamen sind eindeutig.

Sie könnten der ETL einen Protokollierungsschritt für Dateinamen hinzufügen.

Erstellen Sie eine neue Protokolltabelle in der Datenbank mit einer Spalte für den Dateinamen. Schreiben Sie bei jeder Schleife des Pakets den Dateinamen in diese Tabelle. Dann können Sie das als einfache Nachschlagetabelle verwenden, die von einer bedingten Logik in der ETL verwendet wird, um zu prüfen, ob der verarbeitete Dateiname mit einer vorhandenen Datei übereinstimmt.

Wie Sie den Protokollierungsschritt und die Bedingungsprüfung genau implementieren (kann eine Bedingung im Datenfluss sein, in einer Skriptaufgabe ausgeführt werden usw.), hängt vom Design Ihres Pakets ab, aber es sollte das erreichen, wonach Sie suchen.