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

CHECK OPTION

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
CHECK OPTION sorgt dafür, dass UPDATE- und INSERT-Anweisungen am Inhalt der Sicht nur funktionieren, wenn dieser dem Filter der Sicht entspricht.
03:36

Transkript

Eine weitere interessante Möglichkeit von Schichten ist die sogenannte Check Option. Mit der Check Option wird verhindert, dass Zeilen durch die Schicht so verändert oder eingefügt werden, dass sie selber von der Schicht nicht zurückgegeben würden. Das setzt natürlich voraus, dass die Schicht über einen Filter verfügt und dass diese Änderungen dann diesen Filter nicht passieren würden. Damit kann ich sicherstellen, dass Daten, die durch die Schicht geliefert werden, entsprechend nicht so verändert werden können, dass sie quasi aus der Schicht rausfallen oder dass sie keine Zeilen einfügen kann, dass sie entsprechend gar nicht in der Schicht auftauchen würden. Richtig sinnig ist das, wenn Sie eine Schicht auf eine Tabelle abbilden, das heißt, ich mir quasi überlege, dass eine Schicht mir die Daten für zum Beispiel ein Vertriebsgebiet liefert, und dass ich kein Update fahren kann gegen die Schicht um einzelne Zahlen so zu modifizieren, dass sie von einem zum anderen Vertriebsgebiet verschoben würden. Ich zeige Ihnen mal, wie das im SQL Server Management Studio aussehen kann. Das geladene Script erzeugt erstmal wieder eine Datenbank und eine Tabelle. Das lasse ich mal kurz eben ausführen. Anschließend erzeuge ich diesen View. Hier wird allerdings die Check Option am Ende angegeben. Der View selber verfügt über einen Filter auf TracedID < 100 und ich bekomme entsprechend vier Zeilen zurück und wenn ich mir kurz die Daten anschaue, passt das auch, insgesamt wären es sechs Zeilen, allerdings die TraceID hier die letzte Spalte ist in zwei Fällen nicht kleiner als 100, insofern passt das Ergebnis von vier. Wenn ich also den View anlege, kann ich über den View ganz normal die Daten abfragen, es sind natürlich auch vier Zeilen. Ich kann entsprechend aber zum Beispiel nicht folgendes machen: ich kann nicht hingehen und diese Statement entsprechend ausführen, weil das würde dem Filter an dieser Stelle hier widersprechen. Ich bekomme auch eine Fehlermeldung, weil das würde sich in Wesentliche nämlich so auswirken, dass sich die Zeilen, die ich ändern würde, also die vier, die der View sowieso zurückliefert, so ändern würden, dass sie dann nicht mehr zurückgeliefert würden, weil sie schlicht an diesem Filter hier scheitern würden. Das heißt, das geht an der Stelle nicht. Ich kann allerdings durchaus Änderungen machen, also es ist keine generelle Sperre von Änderungen, sondern diese Änderungen müssen nur diesem Filter genügen. Das heißt, ich kann durchaus TraceID auf 10 setzen, dann zeigt er mit vier Zeilen. Wenn ich dann den Inhalt nochmal zurückgebe, dann haben natürlich alle Zeilen hier eine TraceID von 10. Das funktioniert durchaus. Aber ich habe keine Möglichkeit Änderungen zu machen, die diesem Filter in dem View widersprechen, damit kann ich für eine gewisse Konsistenz sorgen. Ich habe also nicht das Problem, dass ich quasi Änderungen mache, ich habe das Beispiel genannt von den Vertriebsgebieten, dass ich mir von einem Vertriebsgebiet zum anderen quasi die Datensätze verschiebe und dann auch keine Möglichkeit mehr für eine Korrektur habe, weil ich an die Daten über den View gar nicht mehr drankomme. Das Gleiche gilt auch beim Einfügen von Zeilen. Wenn ich ein INSERT-Statement habe, muss das im Bezug auf die TraceID, also hier entsprechend auf den Filter in dem View, auch genau diesem Prädikat entsprechen, sonst bin ich nicht in der Lage die Zeile einzufügen.

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!