Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

SQL Server 2016: Triggers, Stored Procedures und Funktionen

SCHEMABINDING bei Skalarfunktionen

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

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

Transkript

Mit Hilfe von SCHEMABINDING können auch Skalarwert- Funktionen davor bewahrt werden, dass Objekte, die sie verwenden, also Tabellen, Sichten, Funktionen und so weiter und so fort, modifiziert werden und damit nicht mehr funktionieren. Das ist ähnlich mit dem, was Sie auch bei Views angeben können, dort gibt es ebenfalls eine SCHEMABINDING-Option, die genau die gleiche Funktion erfüllt. Um das zu demonstrieren, habe ich in das SQL Server Management Studio gewechselt. Ich lege eine Datenbank, eine Tabelle und einige Zeilen in dieser Tabelle an. Ich kann dann eine Funktion erzeugen, die 'WITH SCHEMABINDING' hier nach der Rückgabe angibt und die selber nur die Anzahl der Zeilen in dieser Tabelle zurückliefert. So! Dann kann ich zum Beispiel versuchen die Tabelle zu löschen. Das funktioniert nicht, weil entsprechend, wir haben es in der Fehlermeldung gesehen, das fnScalar-Object darauf verweist. Hier schlägt dann die SCHEMABINDING-Funktion zu. Ich kann allerdings zum Beispiel die Spalte 'TraceID' löschen, weil die schlicht nicht verwendet wird. Ich kann Spalten hinzufügen. Auch das ist kein Problem. Nur die Tabelle selber kann ich an der Stelle nicht löschen, weil die wird benötigt. Ich könnte aber zum Beispiel hingehen und sagen, ich möchte nicht die Anzahl haben, sondern das Maximum und zwar genau dieser Spalte. Dann lege ich alles nochmal frisch an. Ich kann natürlich die gesamte Tabelle nicht löschen. Da hat sich an dem Fall nichts geändert. Wenn ich jetzt aber versuche, die TraceID-Spalte zu löschen, bekomme ich ebenfalls eine Fehlermeldung. Das heißt, die SQL-Server hat sehr genau im Blick, welche Objekte und welche Spalten von den Objekten verwendet wird und sperrt auch nur genau die Spalten dann entsprechend. Ich könnte jetzt zum Beispiel so als Test mal hingehen und den Status löschen. Das funktioniert, weil diese Funktion benutzt die Spalte ja nicht. Einfache Sache. Das heißt, damit schützen Sie die Funktion davor, dass ihre Objekte, auf denen sie basiert, modifiziert werden und sie möglicherweise nicht mehr laufen wird. Allerdings, wenn Sie ein Update auf der Datenbank machen, das heißt jetzt ein Update des Schemas, das heißt Aufbau der Datenbank, Aktualisierungen durchführen, dann müssen Sie genau schauen, in welcher Reihenfolge Sie das machen, weil so lange entsprechend zum Beispiel diese Skalarwertfunktion existiert, kann ich nicht ohne Weiteres hingehen und die Tabelle löschen. Was man bei Tabellen sowieso nicht macht. Aber stellen Sie sich vor, Sie würden eine Funktion schreiben, die auf einer Sicht basiert, und Sie würden in dem Update-Prozess entsprechend die Sicht droppen und neu anlegen, das wäre an der Stelle nicht möglich. Sie könnten ALTER versuchen, allerdings muss dann die neue View auch genau die gleichen Spalten liefern, die auch hier verwendet werden, sonst gibt es entsprechend auch einen Fehler.

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!