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

SCHEMABINDING bei Tabellenwertfunktionen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Mittels SCHEMABINDING kann verhindert werden, dass Objekte, auf denen die Funktion basiert, modifiziert werden.
03:25

Transkript

Auch Tabellenwertfunktionen kann SCHEMABINDING davor schützen, dass Objekte, die diese Funktion nutzen, geändert werden und zwar in einer Form, die beim nächsten Aufruf der Funktion dafür führen, dass es zum Fehler kommt. Das bedeutet, wenn eine Tabellewertfunktion Tabellen, Schichten und Funktionen verwendet, können diese nicht geändert werden, wenn entsprechend die Spalten betroffen sind oder die Rückgabewerte betroffen sind, die diese Funktion dann benutzt. SCHEMABINDING wird mit SQL Server 2016 noch ein etwas größere Bedeutung bekommen und zwar kennt SQL Server 2016 sogenannte Row-Level Security, das heißt, sie können pro Zeile definieren, wer welche Zeile sehen darf und der Kern ist eine selbst geschriebene Tabellenwertfunktion, die muss zwingend das SCHEMABINDING in ihrer Definition haben und damit kann der SQL-Server dann vor der Rückgabe genau entscheiden, welche Zeile wirklich verwendet oder geliefert werden soll und welche vor dem Anwender versteckt werden. Auch für das SCHEMABINDING habe ich Ihnen eine kleine Beispielskriptdatei zusammengestellt. Zunächst einmal lege ich dafür die Datenbank an, erzeuge dann eine Tabelle und füge einige Zeile in diese Tabelle ein. Dann lege ich eine Tabellenwertfunktion an und zwar eine Inline-Version, hier steht nur ein SELECT-Statement, und gebe hier nach RETURNS TABLE WITH SCHEMABINDING an. Wenn ich das mache, dann kann ich danach zum Beispiel wie erwartet die Tabelle nicht mehr löschen. Ich kann die TraceID- Spalte nicht eliminieren, weil die wird in der Tat hier verwendet. Ich könnte aber zum Beispiel, Sie sehen hier, es gibt eine Status-Spalte, die könnte ich auf jeden Fall entfernen, das müsste gehen. Ich könnte auch generell neue Spalte hinzufügen, auch das wäre erlaubt, das funktioniert. Also das, was die andere Objekte mit SCHEMABINDING anstellen an der Stelle, funktioniert auch hier mit den Tabellenwertfunktionen. Dann zeige es nochmal kurz für die Multistatement-Variante. Ich habe hier Änderungen gemacht, deshalb gehe ich nochmal hin und lege Datenbank und Tabelle neu an und dann das Multistatement. Auch hier nach RETURNS, dann der Rückgabe-Variable, TABLE und der Definition der Rückgabe, WITH SCHEMABINDIG, und dann kann ich zum Beispiel auch hier die Tabelle nicht löschen. Jetzt bekomme ich hier die entsprechende Fehlermeldung, dass das fnTableValueMultiStatement- Objekt darauf zugreift. Das funktioniert ebenfalls nicht, aber ich kann ohne Weiteres auch hier natürlich neue Spalte hinzufügen. Das heißt, SCHEMABINDING als einfache Option entsprechend macht, aber möglicherweise das DEPLOYMENT; also wenn Sie neue Versionen Ihrer Datenbank ausrollen, etwas komplizierter, Sie müssen die Reihenfolge einhalten, aber sie können nicht auf Views aufbauen und die entsprechende Drop-Mode neu anlegen, das funktioniert nicht so lange entsprechend SCHEMABINDING aktiviert ist an der Stelle.

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!