У нас вы можете посмотреть бесплатно Ausführen von spezifischem SQL für jede Datenbank nur wenn state_desc ONLINE ist или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
Erfahren Sie, wie Sie SQL-Befehle sicher über mehrere Datenbanken ausführen und sicherstellen, dass Bedingungen wie der `ONLINE`-Status für Stabilität und Zuverlässigkeit erfüllt sind. --- Dieses Video basiert auf der Frage https://stackoverflow.com/q/62404693/ gestellt von dem Nutzer 'user9635657' ( https://stackoverflow.com/u/9635657/ ) sowie auf der Antwort https://stackoverflow.com/a/62405986/ bereitgestellt von dem Nutzer 'Dan Guzman' ( https://stackoverflow.com/u/3711162/ ) auf der Website 'Stack Overflow'. Vielen Dank an diese großartigen Nutzer und die Stackexchange-Community für ihre Beiträge. Besuchen Sie diese Links, um den Originalinhalt und weitere Details zu sehen, z. B. alternative Lösungen, aktuelle Entwicklungen zum Thema, Kommentare, Versionsverlauf usw. Der ursprüngliche Titel der Frage lautete beispielsweise: Run specific sql for each DB only when state_desc is ONLINE Außerdem steht der Inhalt (außer Musik) unter der Lizenz CC BY-SA https://meta.stackexchange.com/help/l... Der ursprüngliche Fragenbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ), und der ursprüngliche Antwortbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ). Falls Ihnen irgendetwas auffällt oder Unstimmigkeiten bestehen, schreiben Sie mir bitte an vlogize [AT] gmail [DOT] com. --- Verwaltung der SQL-Ausführung für Online-Datenbanken Bei der Arbeit mit einem SQL Server besteht häufig die Anforderung, spezifische SQL-Befehle über mehrere Datenbanken hinweg auszuführen. Ein typisches Szenario könnte beispielsweise darin bestehen, Zeilen aus einer bestimmten Tabelle zu löschen, die älter als eine vorgegebene Dauer sind — sagen wir sechs Monate. Allerdings ist eine zentrale Überlegung sicherzustellen, dass Ihre Befehle nur auf Datenbanken ausgeführt werden, die sich im ONLINE-Zustand befinden. Dies verhindert nicht nur Ausführungsfehler, sondern ermöglicht auch eine effektive Protokollierung von Datenbanken, die beim Prozess übersprungen werden. In diesem Blogbeitrag besprechen wir, wie Sie Ihr SQL-Skript so anpassen, dass der Zustand Ihrer Datenbanken (ob sie ONLINE sind) geprüft wird, bevor der Lösch-Befehl ausgeführt wird, und wie Sie dabei festhalten, welche Datenbanken nicht verarbeitet wurden. Wir unterteilen es hierfür in klar strukturierte Abschnitte. Das ursprüngliche Problem Möglicherweise verfügen Sie über ein existierendes Skript, das zum Löschen veralteter Daten funktioniert, aber nicht die Robustheit besitzt, um mit unterschiedlichen Datenbankzuständen umzugehen. Das ursprüngliche Skript verwendete sp_MSforeachDB, eine nicht dokumentierte gespeicherte Prozedur, die zu Problemen führen kann, wenn sie nicht sorgfältig eingesetzt wird. Hier ist ein Auszug des Originalskripts, mit dem Sie vielleicht gearbeitet haben: [[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]] Dieses Skript löscht zwar effektiv Zeilen, die älter als sechs Monate sind, aus jeder Datenbank, deren Name mit DB_ beginnt, berücksichtigt aber nicht den Zustand der jeweiligen Datenbank. Die verbesserte Lösung Anstelle von sp_MSforeachDB können wir einen Cursor in Kombination mit der Ansicht sys.databases verwenden, um unsere Datenbanken expliziter zu filtern. Zusätzlich nutzen wir DATABASEPROPERTYEX, um den STATUS jeder Datenbank zu prüfen, bevor wir mit der Löschoperation fortfahren. Schritt-für-Schritt-Anleitung Deklarieren einer Ergebnistabelle: Erstellen Sie eine Tabelle, um die Ergebnisse der Datenbankverarbeitung zu speichern. [[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]] Verwendung eines Cursors: Anstelle von sp_MSforeachDB fragen wir sys.databases ab, um gezielt unsere Ziel-Datenbanken basierend auf ihrem Zustand zu ermitteln. Ausführungsbedingungen hinzufügen: Modifizieren Sie das SQL, um sowohl den STATUS als auch die Updateability der Datenbank zu prüfen, um sicherzustellen, dass sie online und im Schreib-/Lesemodus ist. Hier das überarbeitete Skript: [[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]] Ergebnisse beobachten: Am Ende können Sie aus der Ergebnistabelle abfragen, welche Datenbanken erfolgreich verarbeitet wurden und wie viele Zeilen aus jeder gelöscht wurden. Vorteile des verbesserten Skripts Robustheit: Durch die Prüfung des Datenbankzustands vor der Ausführung vermeiden Sie Fehler im Zusammenhang mit der Verfügbarkeit der Datenbank. Protokollierung: Sie erhalten eine klare Übersicht darüber, welche Datenbanken verarbeitet wurden, was die Fehlersuche und Auditierung erleichtert. Flexibilität: Dieser Ansatz kann zukünftig leicht für andere Kriterien oder Aktionen angepasst werden. Fazit Die Implementierung von Prüfungen, um SQL-Befehle nur auf Datenbanken auszuführen, die ONLINE sind, ist entscheidend für die Zuverlässigkeit Ihrer Datenbankoperationen. Indem Sie Ihre Vorgehensweise wie besprochen verfeinern, können Sie die Ausführung Ihrer SQL-Skripte effektive