Benutzer mit den meisten Antworten
SQL Abfrage(n) automatisch ausführen nach ausführen eines DTSX Paketes

Frage
-
Hallo miteinander!
Kurze Info zu unserer Umgebung:
Wir haben einen SQL Server (2017) in der Firma auf dem ein WAWI läuft.Wir müssen 1x in der Woche 3 Tabellen von unserem internen Server auf einen externe Server (2017) hochladen, danach ein paar gespeicherte SQL Abfragen ausführen, ein Ergebnis dieser Abfragen als XML speichern un dieses per FTP hochladen.
Im Moment passiert das so:
Mit dem SQL Managment Studio zu beiden Servern verbinden, die Tabellen mit dem Import/Export Assistenten hochladen, danach am Zielserver die SQL Abfragen durchführen, das eine Ergebnis das eine XML Datei erzeugt mit Mausklick speichern und danach hochladen per FTP. Zum Schluss werden die importierten Dateien am Zielserver wieder gelöscht.
Ich habe jetzt den Import/Export als SSIS Paket gespeichert, das ist schon eine Erleichterung.
Nun die Frage: wie kann man es am besten/einfachsten umsetzen die restliche Schritte komplett zu automatisieren?
Kann man das DTSX Paket so modifizieren das er nach dem Upload die SQL Abfragen ausführt und die Tabellen wieder löscht?Danke vorab für Eure Mühe
Gruß, Tom
Antworten
-
Das SSIS im wesentlichen nur SQL's ausführt, geht dies u.U. hiermit:
https://www.mssqltips.com/sqlservertutorial/9069/deploy-and-schedule-an-sql-server-integration-services-ssis-package-step-by-step/Alles andere geht mehr oder weniger per Aufgabenplanung.
"dtexec" ist dein Freund:
https://stackoverflow.com/questions/8079616/how-to-schedule-a-ssis-package-job-in-sql-sheduler-or-windows-schedulerFür den gesamten Ablauf benötigst du u.U. dann 2 Scripts. 1x Erstellen der Outputs, 1x Löschen der Tabellen.
Wobei letzteres würde ich eher zuerst machen, so dass nach dem Lauf das Ergebnis noch da ist und vor dem nächsten Lauf erst entfernt wird.also:
dtexec <PaketClear>
dtexec <PaketCreateFiles>
batchftp ....Das Ganze per .BAT, .CMD, .ps1, ...
- Als Antwort markiert Thomas Elser Samstag, 16. März 2019 12:09
-
Hallo Thomas,
vielleicht verstehe ich deine Frage falsch aber, wenn es darum geht die SQL Abfragen automatisch auszuführen und die Tabellen wieder löschen, brauchst du in SSIS das Task SQL-Ausführen(am einfachsten 2, eine für SQL Abfragen automatisch auszuführen und eine für Tabellen löschen ). Damit ist die Aufgabe erledigt.
Für FTP gibt es im SSIS auch ein FTP Task
hier kannst du auch lesen https://docs.microsoft.com/de-de/sql/tutorials/task-14-add-execute-to-control-flow-run-mds-stored-procedure?view=sql-server-2014
ich hoffe deine Frage verstanden zu haben ansonsten Bescheid sagen
Gruß
Elvis
- Als Antwort markiert Thomas Elser Samstag, 16. März 2019 12:09
-
Ich finde, dies ist hier ganz gut beschrieben.
https://www.codeproject.com/Articles/635956/How-to-export-data-from-database-tables-to-an-XML
- Als Antwort markiert Thomas Elser Samstag, 16. März 2019 12:09
Alle Antworten
-
Das SSIS im wesentlichen nur SQL's ausführt, geht dies u.U. hiermit:
https://www.mssqltips.com/sqlservertutorial/9069/deploy-and-schedule-an-sql-server-integration-services-ssis-package-step-by-step/Alles andere geht mehr oder weniger per Aufgabenplanung.
"dtexec" ist dein Freund:
https://stackoverflow.com/questions/8079616/how-to-schedule-a-ssis-package-job-in-sql-sheduler-or-windows-schedulerFür den gesamten Ablauf benötigst du u.U. dann 2 Scripts. 1x Erstellen der Outputs, 1x Löschen der Tabellen.
Wobei letzteres würde ich eher zuerst machen, so dass nach dem Lauf das Ergebnis noch da ist und vor dem nächsten Lauf erst entfernt wird.also:
dtexec <PaketClear>
dtexec <PaketCreateFiles>
batchftp ....Das Ganze per .BAT, .CMD, .ps1, ...
- Als Antwort markiert Thomas Elser Samstag, 16. März 2019 12:09
-
Hallo Thomas,
vielleicht verstehe ich deine Frage falsch aber, wenn es darum geht die SQL Abfragen automatisch auszuführen und die Tabellen wieder löschen, brauchst du in SSIS das Task SQL-Ausführen(am einfachsten 2, eine für SQL Abfragen automatisch auszuführen und eine für Tabellen löschen ). Damit ist die Aufgabe erledigt.
Für FTP gibt es im SSIS auch ein FTP Task
hier kannst du auch lesen https://docs.microsoft.com/de-de/sql/tutorials/task-14-add-execute-to-control-flow-run-mds-stored-procedure?view=sql-server-2014
ich hoffe deine Frage verstanden zu haben ansonsten Bescheid sagen
Gruß
Elvis
- Als Antwort markiert Thomas Elser Samstag, 16. März 2019 12:09
-
Super, vielen Dank Euch beiden.
Ich habe bis auf das speichern der XML Datei alles umsetzen können.
Habt Ihr eventuell noch eine Idee wie es zu schaffen wäre folgende Abfrage nicht nur als Grid in den Ergebnissen anzuzeigen sonder als XML Datei zu speichern?
SELECT X, Y, Z
FROM A
WHERE A.X Not Like 'ABC%'
ORDER BY Y
FOR XML PATH ('Produkt'), ROOT ('Produkte')Wie gesagt muss ich das jetzt immer manuell im SSMS machen, wäre schön wenn sich das auch atomatisieren lässt.
Nochmals vielen Dank für Eure Hilfe
Tom
-
Ich finde, dies ist hier ganz gut beschrieben.
https://www.codeproject.com/Articles/635956/How-to-export-data-from-database-tables-to-an-XML
- Als Antwort markiert Thomas Elser Samstag, 16. März 2019 12:09