Dies ist nicht identisch mit dem Debug-Modus. Ich möchte eine Warnung anzeigen, wenn der Entwickler tatsächlich in BIDS ist und die Warnung nicht anzeigen, wenn das Paket von einem geplanten Job ausgeführt wird.Wie kann ich in SSIS überprüfen, ob das Paket oder die Aufgabe innerhalb von BIDS ausgeführt wird, indem Sie die Wiedergabeschaltfläche verwenden oder mit der rechten Maustaste klicken und Ausführen ausführen?
Antwort
Ich fürchte, was Sie versuchen zu erreichen ist nicht möglich. BIDS verwendet dieselbe Laufzeit wie Ihr SSIS-Agent.
Sie könnten jedoch eine Umgebungsvariable in Ihrem Paket festlegen und sie während der Bereitstellung entfernen. All das ist hacky und vereitelt den Zweck.
Es sollte eigentlich keine benutzerdefinierte Logik sein, wenn ein Paket lokal ausgeführt wird oder nicht implementiert wird (außer Konfigurationen, die sich auf das Ausführungsdiagramm auswirken können).
Wenn Sie versuchen, Benutzerfehler zu vermeiden, sollten Sie Ihre Kollegen schulen und/oder den Zugriff beschränken.
Wir hatten fast eine Katastrophe, als ein Entwickler versehentlich die Produktion wegwarf, weil er nicht wusste, dass er auf Produktion schaute. Wenn ich eine Warnung hinzufügen kann, die besagt - bist du sicher? Das ist Produktion - das versuche ich zu erreichen, ohne etwas Hackiges zu machen, wie nach der Existenz einer Datei oder etwas zu suchen. – user2708841
Leider ist dies nicht möglich. Wir hatten ähnliche Probleme bei einer meiner früheren Firmen. Dies ist ein fortlaufendes Problem. Ich bin ein starker Befürworter, den Zugang zu bestimmten, gut ausgebildeten Personen für die Produktion zu beschränken. Außerdem sollte die Veröffentlichung von einem formellen Freigabeprozess begleitet werden. Nichts davon hilft dir in deinem Fall, ich verstehe. Aber lassen Sie mich Ihnen sagen, dass ich Ihren Schmerz fühle und dasselbe durchmachte, bis wir einen reifen, wiederholbaren Freisetzungsprozess hatten. :/ –
Sie könnten eine Skriptaufgabe verwenden, die eine MsgBox
öffnet. Die MsgBox
würde nur geöffnet, wenn die Aufgabe in BIDS ausgeführt wird, wenn ich mich nicht irre.
Ja, das war mein erster Gedanke, aber es scheint keinen Code zu geben, um festzustellen, ob du im Visual Studio bist oder nicht. Sie können feststellen, ob Sie sich im Debug-Modus befinden, aber das ist nicht das, was ich möchte. – user2708841
Ist es nicht der Fall, dass die MsgBox angezeigt wird, wenn Sie das Paket in Visual Studio ausführen, unabhängig davon, ob es im Debugmodus ist? –
Ja, aber die msgbox wird auch angezeigt, wenn wir das Paket bereitstellen und über einen geplanten Job ausführen. Das würde die Ausführung des Pakets stoppen. – user2708841
Ihr Titel scheint nicht mit dem Körper Ihrer Frage übereinzustimmen. Angenommen, Ihr SQL Server verwendet ein Dienstkonto für die Paketausführung. Können Sie die für die Ausführung verwendeten Anmeldeinformationen überprüfen? –
BIDS ist das gleiche wie Visual Studio. Ich möchte nur wissen, ob das Paket innerhalb des Entwicklungstools ausgeführt wird oder nicht. – user2708841
Wie erkennen Sie zuerst, dass es läuft? Beobachten Sie es im SSIS-Dienst (bitte klären) –