5

Ich mache ein kleines Paket in SSIS (Integration Services), und in meinem Kontrollfluss habe ich ein paar Skriptaufgaben und einige Datenflüsse Lesen von Daten aus XML-Dateien in die Datenbank.Wiederherstellen von Code gelöscht von SQL Server-Datentools (Visual Studio)

Ich habe einige Änderungen an dem C# -Code in einer Skriptaufgabe im integrierten Visual Studio-Editor vorgenommen und dann auf "Speichern" geklickt. Der Stern neben dem Dateinamen verschwand und zeigte an, dass die Datei gespeichert wurde. Ich schloss den Visual Studio-Editor, speicherte das Paket, klickte mit der rechten Maustaste auf den Skript-Task und wählte "Task ausführen". Es lief ohne Fehler, aber die XML - Dateien, die es erstellen sollte, erschienen nie, also habe ich das Skript im Visual Studio - Editor wieder geöffnet, und zu meinem Entsetzen war nur das Standardskript da (zB nur die Hauptmethode und es enthielt nur die Dts.TaskResult = (int)ScriptResults.Success; Aussage)!

Ich konnte den Code, den ich in dieser Skriptaufgabe hatte, nicht finden, und wenn ich die .dtsx-Datei in einem Texteditor öffne, ist mein Code weg! Der Code in der anderen Skriptaufgabe ist jedoch dort.

Ich habe genau darauf geachtet, also habe ich versehentlich alles gelöscht, bevor ich den Editor geschlossen und das Paket gespeichert habe.

Meine Frage ist also: Hat jemand anderes diesen total wahnsinnigen Fehler gefunden, und gibt es eine Möglichkeit, den Code wiederherzustellen? oder muss ich nur in die Kugel beißen und sie aus der Erinnerung neu erstellen?

Wir verwenden in diesen SSIS-Jobs selten eine signifikante Menge an C# -Code, daher haben wir kein integriertes VCS. Ich habe den Code in eine neue Datei kopiert und manuell zu meinem eigenen Git Repo hinzugefügt, nur um sicher zu sein, aber das hatte ich noch nicht mit diesem speziellen Code gemacht.

Und ich muss nur meine Frustration mit einer solchen erstaunlich schlecht Fehler in Visual Studio neu formulieren ...

+0

Unwahrscheinlich, aber in Ihnen Äquivalent von C: \ Benutzer \ AlexK \ Dokumente \ Visual Studio 2013 \ Backup-Dateien –

+0

Danke, aber leider war dieser Ordner leer. Ich habe auch viele andere wahrscheinliche und unwahrscheinliche Ordner durchgesehen. Ich habe von Anfang an angenommen, dass ich kein Glück habe, aber ich wollte nur sehen, ob jemand eine Lösung gefunden hat. Außerdem war es schön, ein wenig zu entlüften, denn ein solcher Fehler ist überwältigend. –

+0

Ich hatte das schon vorher, aber nur, weil ich CANCEL statt OK gedrückt habe, um aus dem Skript-Task-Editor herauszukommen. Was manchmal verwirrend ist, ist, dass Sie sowohl im Komponenteneditor als auch in Visual Studio arbeiten, um den Code zu bearbeiten. Ich schlage vor, eine signifikante Menge an Code in ein eigenes Projekt zu legen und die DLL stattdessen von der Skriptaufgabe aus aufzurufen. –

Antwort

2

ich ein ähnliches Problem habe. Es ist reproduzierbar. Der Code ist in einer Skriptaufgabe in einem foreach-Container vorhanden. Sie können den Code aufrufen und anzeigen, um zu bestätigen, dass er existiert, sowie die Variablen, die für das Lesen und Lesen festgelegt sind. Als nächstes gehe zum foreach (Eltern-Container) und ändere ein Variablen-Mapping. Gehe zurück zur Skriptaufgabe und der Code ist weg. Ich habe es sogar so einfach gemacht, wie keine Variablen innerhalb der Skriptaufgabe verwendet wurden und nur einige Kommentare eingefügt haben. Und es passiert immer noch und wird wieder auf den Standardcode zurückgesetzt.

+0

Kann dieses Verhalten bestätigen.Wenn eine Variable in einem foreach-Schleifencontainer geändert wird, wird der Code der Skriptaufgabe in diesem Container gelöscht, wenn das Projekt geladen wird. –

+0

Ich habe derzeit ein Uservoice-Ticket für das Problem geöffnet. Hoffentlich bekommt es mehr Traktion. Es hat ein paar Stimmen und wird gerade überprüft. https://feedback.azure.com/forums/908035-sql-server/suggestions/33215863-ssis-script-tasks-losing-code?tracking_code=36c251f37f8d7fef5c59a1d1456489bf – DataNerd