SQL Server 2016: Triggers, Stored Procedures und Funktionen

Parameter in Tabellenwertfunktionen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Tabellenwertfunktionen akzeptieren Parameter, die sich durch einen Namen und einen passenden Datentyp auszeichnen.
04:15

Transkript

Tabellenwertfunktionen können natürlich auch Parameter besitzen. Für die Datentypen dieser Parameter stehen Ihnen die Datentypen zur Verfügung, die Sie auch beim Tabellenentwurf haben, das heißt integer, bit, datetime, varchar, nvarchar und so weiter und so fort, also die üblichen Verdächtigen. Sie können auch Parameter als optionale Parameter definieren, das heißt, für diese müssen Sie beim Aufruf keinen Wert übergeben. Da Sie aber bei Tabellenwertfuntkionen immer alle Parameter mit Werte bestücken müssen, müssen Sie hier auf einen Kniff zurückgreifen, den Sie schon kennen von den Skalarwertfunktionen, nämlich, dass Sie entsprechend einfach DEFAULT schreiben an der Stelle und dann wird der explizite oder implizite DEFAULT-Wert verwendet. Ich zeige Ihnen gleich ein Beispiel, was damit genau zu verstehen ist. Generell beim Aufruf, auch das werden Sie gleich sehen, ist es so, dass Sie immer alle Parameter angeben müssen und das über die Reihenfolge. Das bedeutet, Sie haben nicht die Wahl wie bei einer Stored Procedure, dass Sie auch die Parameter über ihren Namen ansprechen, sondern Sie müssen es immer über die Reihenfolge und immer vollständig tun. Um Ihnen das zu demonstrieren bin ich wieder im SQL Server Management Studio. Ich setze die Datenbank eben kurz zurück bzw. lege sie kurz an. Dann kann ich eine Tabellenwertfunktion in der Inline-Variante, hier steht nur ein SELECT-Statement, so definieren mit den Parametern, eigentlich wie ich immer tue, ich schreibe ein @-Zeichen und danach den Namen des Parameters und anschließend entsprechend den Datentyp, den ich haben möchte. Ich kann, wenn ich möchte, NULL angeben, NOT NULL funktioniert hier nicht, das ging schon in Skalarwertfunktionen nicht, und bei den Multistatement Tabellenwertfunktionen sieht das gleich aus. Das heißt, da ist kein großer Unterschied, gar keiner Unterschied für die Definitionen der Parameter. Ich kann dann zum Beispiel einmal diese Variante anlegen und im Aufruf muss ich immer in den runden Klammern alle Werte übergeben, dann funktioniert das. Hätte ich keine Parameter, muss ich mindestens die runden Klammern abgeben. Das Gleiche gilt auch für die Multistatement-Variante, auch hier muss ich alle Werte angeben. Wenn ich keine Parameter hätte, so müsste es zumindest das runde Klammern-Pärchen sein, was ich hinter den Namen der Funktion schreibe. Generell da es eine Tabellewertfunktion ist, setze ich das nach dem FROM ein weil hier auch eine View oder eine Tabelle stehen könnte. Und ich sagte ja, Tabellenwertdunktionen sind genau die, die komplette Tabellen zurückliefern, insofern macht das Sinn die auch an den Stellen entsprechend zu verwenden, wo ich Tabellen und Views oder Schichten verwende. Im nächsten Skript zeige ich Ihnen, wie Sie optionale Parameter verwenden können. Zunächst setze ich einmal die Datenbank wieder zurück. Sie sehen hier schon CREATE FUNCTION. Die Parameter, von denen ich möchte, dass sie Standarwerte haben, sind mit einem Gleichheitszeichen und dann eben diesem Wert markiert. Auf die Art und Weise kann ich den Parametern Standardwerte mitgeben. Das mache ich jetzt einmal hier für die Inline-Variante. Natürlich kann ich die nach wie vor so aufrufen, dass ich jedem Parameter einen Wert gebe. Kommt das Ergebnis bald rum. Oder ich kann hingehen an der Stelle, wo ich keine Werte haben möchte, einfach DEFAULT verwenden. Wenn ich das mache, ist der Aufruf jedenfalls möglich. Interessanterweise kann ich auch folgendes machen, achten Sie auf Parameter Nummer 5, hier habe ich keinen Standarwert. Wenn ich jetzt hingehe und hier einfach DEFAULT schreibe, dann ist der Wert einfach NULL an der Stelle. Das heißt, damit habe ich einen impliziten Standardwert und keinen expliziten, so wie ich ihn hier angebe. Bei Multistatement-Tabellenwertfunktionen sieht das genau so aus. Exakt die gleiche Syntax und auch der Aufruf ist genau der Gleiche, der ergibt sich also, kein Unterschied.

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!