Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Server 2016: Triggers, Stored Procedures und Funktionen

Gespeicherte Prozeduren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Hier gibt's eine Definition der gespeicherten Prozeduren. Nach Vorstellung der wichtigsten Merkmale erfahren Sie auch gleich, wie Sie so etwas anlegen.
06:31

Transkript

Gespeicherte Prozeduren bieten auf dem SQL-Server die Möglichkeit, komplexe Programmierungen abzulegen. Generell kann man sagen, dass gespeicherte Prozeduren Stored Procedures sind, die auf dem Server zentral gespeichert werden und die natürlich von Client dann über ihren Namen aufgerufen werden. Damit habe ich die Möglichkeit komplexe Aufgaben in Stored Procedures zu verlagern, die datenbankseitig laufen und möglicherweise mir dadurch einen richtigen Performanceschub geben können und in den ich die Möglichkeit habe entsprechend mit der SQL-Server-Sicherheit Sicherheits bestellen, wer die Stored Procedure nutzen kann und dass ich Logik und die einzelnen Schritte in dem Client implementieren muss. Generell im Kürze Stored Procedures können Parameter haben. Sie müssen nicht aber sie können Parameter haben. Schleifen und IF-Anweisungen sind möglich. Das heißt, ich kann damit relativ umfangreiche Konstrukte erstellen und in der Tat gibt es sehr viele Stored Procedures draußen meist liebevoll Tapete oder Ähnliches genannt, die wirklich über Seiten gehen und die extrem komplexe Sachen machen unter anderem, weil es auch möglich ist, Schleifen und IF-Anweisungen zu verwenden. Steored Procedures können Ergebnismengen zurückliefern. Spricht ein SELECT-Statement oder die OUTPUT-Klausel. Damit habe ich die Möglichkeit sehr sehr schnell Daten an den Client zurückzuliefern. Die Ergebnismengen, es kann nur eine geben, es können auch mehrere sein, können dann entsprechend vom Client ausgelesen werden und entsprechend benutzt. Stored Procedures können Daten verändern. Das können Schichten und Funktionen nicht. Das heißt, ich habe hier die Möglichkeit auch durchaus auf den Inhalt von Tabellen einzuwirken. Darüber hinaus können Stored Procedures Objekte erstellen und modifizieren. Das bedeutet, ich kann mit Hilfe einer Stored Procedure in der Tat auch andere Stored Procedures anlegen. Ich kann theoretisch auch Tabellen modifizieren. Ich kann alles machen, vorausgesetzt der Aufrufer hat die entsprechende Berechtigung. Man versucht das in der Regel ein bisschen zu vermeiden, aber manchmal macht es einfach Sinn, dass ich eine Stored Procedure wirklich auch Strukturen anlege in der Datenbank, oftmals sind es dann nur temporäre, dann ist es auch in Ordnung, aber auch permanente Objekte können über Stored Procedures entsprechend modifiziert oder erstellt werden. Und ich kann in Stored Proceduren, leider häufig vernachlässigt, aber durchaus möglich, auch eine Fehlerbehandlung etablieren. Das heißt, ich kann auf Fehler reagieren und dann entsprechend die eine oder andere Aktion ausführen. Ich kann Fehler behandeln in eine Art TRY CATCH, wie Sie es von anderen Programmiersprachen wie Java, C Sharp, Visual Basic kennen, auch das bietet eine Stored Procedure. So ich bin am SQL Server Management Studio wieder. Auch die Beispiele für die Stored Procedures haben diesen Pasus am Anfang. Der guckt, ob die entsprechende Datenbank vorhanden ist. Wenn sie das ist, entsprechend die Datenbank löscht und neu anlegt, damit alle Scripte immer die gleiche Augangsvorausetzung haben. Dann lege ich eine Stored Procedure mit CREATE PROCEDURE an oder wenn ich Tipparbeit sparen möchte, kann ich auch schreiben CREATE PROC, das ist äquivalent. Danach kommt das Schema und der Name der Stored Procedure. Dann können die Parameter kommen. Dann kommt AS und dann sollten Sie BEGIN und END schreiben und zwischen BEGIN und END den entsprechenden Ausführungsblock. BEGIN und END sind nicht in jedem Fall notwendig. Also wenn es nur eine Anweisung hat, brauchen Sie es nicht, dennoch um den Code lesbarer zu machen sollten Sie auf jeden Fall sich angewöhnen als Best Practice BEGIN und END an der Stelle wirklich zu verwenden. Das heißt, damit kann ich die Stored Procedure dann anlegen. Es macht nicht besonders viel, aber ich kann mir zum Beispiel hier im Object Explorer die Stored Procedures auflisten lassen und kann dann zum Beispiel sagen, ich möchte die entweder so anpassen oder ich habe hier oben auch ein Feld Modify. Es kommt das Gleiche, ich kann die Stored Procedure direkt hier ausführen lassen, dann kommt so einen Standarddialog, der mich nach allen Parametern fragt. Es gibt momentan keine. Wenn ich auf Ok klicke, wird dieses kleines Skript erzeugt und wenn ich das ausführe, dann führt er die Stored Procedure aus und das Ergebnis ist hier entsprechend die 0. Dann kann ich Soterd Procedures natürlich auch, wenn ich möchte, modifizieren. Da heißt es dann ALTER PROCEDURE oder ALTER PROC, wenn ich möchte. Da kann ich zum Beispiel hier mal aus der Null eine Eins machen. Ich kann die da nochmal ausführen oder ich kann es einfach mal tippen, das sehen Sie gleich einem Beispiel nochmal. EXEC zum Beispiel führt eine Stored Procedure aus. Und das Ergebnis ist nun 1. Das geht also relativ einfach an der Stelle. Dann kann ich eine Stored Procedure wieder löschen und da das normalerweise einen Fehler erzeugt, wenn dieStored Procedure nicht vorhanden ist, muss ich vorher prüfen, ob es die Stored Procedure wirklich hat. Das mache ich mit der OBJECT_ID-Funktion, der übergebe ich den kompletten Namen des Stored Procedures und als Typus P für Procedure und prüfe, ob das entsprechend nicht NULL ist und dann kann ich diese Stored Procedure gefahrenlos löschen. Wenn ich jetzt hier aktualisiere, sehe ich, ich habe keine Stored Procedure mehr. Ich kann die wieder anlegen, dann ist wieder da. Nicht besonders spannend wahrscheinlich, aber sehr elementar natürlich. Mit SQL-Server 2016 wird es möglich sein zu sagen auch hier DROP IS EXISTS PROCEDURE und dann kann ich die Stored Procedure löschen, falls sie existiert. Ich kann mir diese zwei Zeilen sparen an der Stelle. Weil ich Stored Procedures habe, kann ich die natürlich auch auflisten. Ich kann hingehen und sagen, ich möchte das INFORMATION_SCHEMA verwenden und kann hier auch auf ROUTINES gehen. Ich bekomme alle meine Stored Procedures angezeigt, Funktionen sind auch dabei, aber auf jeden Fall die Stored Procedures sind dabei und wenn ich ganz nach rechts zum Beispiel scrolle, dann finde ich auch hier eine ROTUNE_DEFINITION. Da ist dann der DDL-Code, den der Stored Procedure angelegt hat, vorausgesetzt die ist nicht verschlüsselt, ich komme später zu, aber prinzipiell finde ich hier erstmal alle Stored Procedures, die ich in der Datenbank habe und kann die da entsprechend auflisten. Es sei natürlich, ich bereite dem Spuk ein Ende und lösche die Stored Procedure.

SQL Server 2016: Triggers, Stored Procedures und Funktionen

Nutzen Sie in SQL Server Trigger, gespeicherte Prozeduren, Late Binding, Fehlerbehandlung sowie Scalar- und Tabellenwertfunktionen.

3 Std. 12 min (44 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:08.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!