logo

SQL Server-Funktionen

Funktionen in SQL Server sind die Datenbankobjekte, die a enthalten Satz von SQL-Anweisungen zur Ausführung einer bestimmten Aufgabe . Eine Funktion akzeptiert Eingabeparameter, führt Aktionen aus und gibt dann das Ergebnis zurück. Wir sollten beachten, dass Funktionen immer entweder einen einzelnen Wert oder eine Tabelle zurückgeben. Der Hauptzweck von Funktionen besteht darin, die gemeinsame Aufgabe einfach zu reproduzieren. Wir können Funktionen einmal erstellen und sie je nach Bedarf an mehreren Standorten verwenden. SQL Server erlaubt nicht die Verwendung der Funktionen zum Einfügen, Löschen oder Aktualisieren von Datensätzen in den Datenbanktabellen.

Im Folgenden sind die Regeln zum Erstellen von SQL Server-Funktionen aufgeführt:

  • Eine Funktion muss einen Namen haben und der Name darf nicht mit einem Sonderzeichen wie @, $, # oder anderen ähnlichen Zeichen beginnen.
  • SELECT-Anweisungen sind die einzigen, die mit Funktionen arbeiten.
  • Wir können eine Funktion überall wie AVG, COUNT, SUM, MIN, DATE und andere Funktionen mit der SELECT-Abfrage in SQL verwenden.
  • Immer wenn eine Funktion aufgerufen wird, wird sie kompiliert.
  • Funktionen müssen einen Wert oder ein Ergebnis zurückgeben.
  • Funktionen verwenden nur Eingabeparameter.
  • Wir können in Funktionen keine TRY- und CATCH-Anweisungen verwenden.

Arten von Funktionen

SQL Server kategorisiert die Funktionen in zwei Typen:

  • Systemfunktionen
  • Benutzerdefinierte Funktionen

Lassen Sie uns beide Typen im Detail beschreiben.

Systemfunktionen

Vom System definierte Funktionen werden als Systemfunktionen bezeichnet. Mit anderen Worten, alle Integrierte Funktionen Die vom Server unterstützten Funktionen werden als Systemfunktionen bezeichnet. Die integrierten Funktionen sparen uns Zeit bei der Ausführung der jeweiligen Aufgabe. Diese Art von Funktionen arbeiten normalerweise mit der SQL-SELECT-Anweisung zusammen, um Werte zu berechnen und Daten zu manipulieren.

Hier ist die Liste einiger Systemfunktionen, die im SQL Server verwendet werden:

  • String-Funktionen (LEN, SUBSTRING, REPLACE, CONCAT, TRIM)
  • Datums- und Zeitfunktionen (datetime, datetime2, smalldatetime)
  • Aggregatfunktionen (COUNT, MAX, MIN, SUM, AVG)
  • Mathematische Funktionen (ABS, POWER, PI, EXP, LOG)
  • Ranking-Funktionen (RANK, DENSE_RANK, ROW_NUMBER, NTILE)

Das folgende Bild zeigt alle integrierten Datenbankfunktionen, die im SQL Server verwendet werden:

SQL Server-Funktionen

Benutzerdefinierte Funktionen

Funktionen, die sind vom Benutzer erstellt in der Systemdatenbank oder einer benutzerdefinierten Datenbank werden als benutzerdefinierte Funktionen bezeichnet. Die UDF-Funktionen akzeptieren Parameter, führen Aktionen aus und geben das Ergebnis zurück. Diese Funktionen helfen uns, unsere Entwicklung zu vereinfachen, indem sie komplexe Geschäftslogik kapseln und sie je nach Bedarf überall zur Wiederverwendung verfügbar machen. Durch die benutzerdefinierten Funktionen lässt sich der zum Abfragen von Daten erforderliche Code viel einfacher schreiben. Sie verbessern außerdem die Lesbarkeit und Funktionalität von Abfragen und ermöglichen es anderen Benutzern, dieselben Verfahren zu replizieren.

SQL Server kategorisiert die benutzerdefinierten Funktionen hauptsächlich in zwei Typen:

0,0625 als Bruch
  1. Skalarfunktionen
  2. Tabellenwertige Funktionen

Hier finden Sie die Beschreibungen dieser UDF-Funktionen.

Skalarfunktionen

Skalarfunktion in SQL Server immer akzeptiert einzelne oder mehrere Parameter und gibt einen einzelnen Wert zurück . Die Skalarfunktionen sind bei der Vereinfachung unseres Codes nützlich. Angenommen, wir haben eine komplexe Berechnung, die in mehreren Abfragen auftritt. In einem solchen Fall können wir eine Skalarfunktion erstellen, die die Formel kapselt und sie in jeder Abfrage verwendet, anstatt in jeder Abfrage.

Die folgende Syntax veranschaulicht die Erstellung einer Skalarfunktion in SQL Server:

int zum Stringen in Java
 CREATE FUNCTION schema_name.function_name (parameter_list) RETURNS data_type AS BEGIN statements RETURN value END 

Die oben genannten Syntaxparameter werden im Folgenden beschrieben:

Wir werden zuerst den Funktionsnamen nach dem definieren FUNKTION ERSTELLEN Schlüsselwörter. Der Name des Schemas ist optional. Wenn wir den Schemanamen nicht definieren, verwendet SQL Server das Standardschema dbo . Als nächstes definieren wir die Liste von Parameter in Klammern eingeschlossen. Drittens schreiben wir die Anweisungen für die Funktion und dann im KEHRT ZURÜCK Anweisung, definieren Sie den Datentyp des Rückgabewerts. Schließlich haben wir die RETURN-Anweisung hinzugefügt, um einen Wert innerhalb des Funktionskörpers zurückzugeben.

Beispiel

In diesem Beispiel wird eine Funktion erstellt Berechnen Sie den Nettoumsatz basierend auf Menge, Preis und Rabattwert:

 CREATE FUNCTION udfNet_Sales( @quantity INT, @price DEC(10,2), @discount DEC(3,2) ) RETURNS DEC(10,2) AS BEGIN RETURN @quantity * @price * (1 - @discount); END; 

Jetzt können wir diese Funktion verwenden, um den Nettoumsatz eines beliebigen Kundenauftrags in der definierten Tabelle zu berechnen.

Das folgende Bild zeigt, wo wir die Skalarfunktionen finden können:

SQL Server-Funktionen

Wir können die Skalarfunktionen genauso aufrufen wie die integrierte Funktion in SQL Server. Beispielsweise können wir die obige Funktion udfNet_Sales wie folgt aufrufen:

 SELECT dbo.udfNet_Sales(25, 500, 0.2) AS net_sales; 

Die Ausführung dieser Funktion gibt den Nettoumsatz zurück:

SQL Server-Funktionen

SQL Server ermöglicht es uns auch um die Skalarfunktion mithilfe von ALTER zu ändern Stichwort. Hier ist die Syntax dafür:

 ALTER FUNCTION schema_name.function_name (parameter_list) RETURNS data_type AS BEGIN statements RETURN value END 

Mit der folgenden Anweisung können wir die Skalarfunktion aus der SQL Server-Datenbank entfernen:

für jedes Typoskript
 DROP FUNCTION [schema_name.]function_name; 

Tabellenwertige Funktionen

Tabellenwertfunktionen in SQL Server sind die Benutzerdefinierte Funktion das Daten eines Tabellentyps zurückgibt. Da diese Funktion Der Rückgabetyp ist eine Tabelle , wir können es genauso verwenden wie eine Tabelle.

Wir können die Tabellenwertfunktion in zwei Typen einteilen:

1. Inline-Tabellenwertefunktionen

Diese UDF-Funktion gibt eine Tabellenvariable zurück, die auf der von der Funktion ausgeführten Aktion basiert. Zur Bestimmung des Werts der Tabellenvariablen sollte eine einzelne SELECT-Anweisung verwendet werden.

Beispiel

Das folgende Beispiel erstellt eine Tabellenwertfunktion und ruft die Daten der Mitarbeitertabelle ab:

 --It creates a table-valued function to get employees CREATE FUNCTION fudf_GetEmployee() RETURNS TABLE AS RETURN (SELECT * FROM Employee) 

In dieser Syntax ist die RÜCKGABETABELLE Gibt an, dass die Funktion eine Tabelle zurückgibt. Da es keine gibt ANFANG...ENDE -Anweisung werden lediglich Daten aus der Mitarbeitertabelle abgefragt. Auch wenn es keine Parameter hat, wird es direkt aufgerufen.

Wir können die Tabellenwertfunktionen aufrufen, indem wir die verwenden AUS Klausel der WÄHLEN Abfrage. Zum Beispiel , können wir das oben Genannte nennen udf_GetEmployee Funktion wie folgt:

 SELECT * FROM udf_GetEmployee(); 

Das Ausführen dieser Funktion gibt das folgende Ergebnis zurück:

SQL Server-Funktionen

Mit SQL Server können wir die Tabellenwertfunktionen auch mithilfe des Schlüsselworts ALTER anstelle des Schlüsselworts CREATE ändern. Der Rest des Skripts ist derselbe.

Tabellenwertfunktionen mit mehreren Anweisungen (MSTVF)

Diese UDF-Funktion gibt eine Tabellenvariable zurück basierend auf der von der Funktion ausgeführten Aktion. Sie kann einzelne oder mehrere Anweisungen enthalten, um das Ergebnis zu erzeugen, und es ist auch eine Funktion, die das Ergebnis mehrerer Anweisungen in tabellarischer Form zurückgibt. Dies ist nützlich, da wir in dieser Funktion mehrere Anweisungen ausführen und aggregierte Ergebnisse in die zurückgegebene Tabelle abrufen können. Wir können diese Funktion definieren, indem wir eine Tabellenvariable als Rückgabewert verwenden. Innerhalb der Funktion führen wir mehrere Abfragen aus und fügen Daten in diese Tabellenvariable ein.

Das folgende Beispiel erstellt einen Funktionsnamen „MEHRWERTIG“ das gibt das ' zurück @Mitarbeiter' Tisch. Es enthält drei Felder namens „id“, „em_name“ und „salary“ aus dem 'Mitarbeiter' Tabelle mit der INSERT-Anweisung und aktualisiert dann mit der UPDATE-Anweisung den Namen des Mitarbeiters.

 CREATE FUNCTION MULTIVALUED() RETURNS @Employee TABLE (id INT, emp_name VARCHAR(50), salary INT) AS BEGIN INSERT INTO @Employee SELECT E.id, E.emp_name, E.salary FROM Employee E; UPDATE @Employee SET emp_name = 'Graeme Smith' WHERE id = 3; RETURN END 

Wir können die Tabellenwertfunktionen mit mehreren Anweisungen aufrufen, indem wir die FROM-Klausel der SELECT-Abfrage verwenden. Zum Beispiel können wir die obige Funktion wie folgt aufrufen:

 SELECT * FROM MULTIVALUED(); 

Das Ausführen dieser Funktion gibt das folgende Ergebnis zurück:

Konvertieren von String in Integer-Java
SQL Server-Funktionen

Wann sollten Tabellenwertfunktionen verwendet werden?

Tabellenwertfunktionen werden häufig als parametrisierte Ansichten verwendet. Tabellenwertfunktionen sind flexibler als gespeicherte Prozeduren, da sie überall dort verwendet werden können, wo Tabellen verwendet werden.

Abschluss

In diesem Artikel erhalten Sie einen vollständigen Überblick über die im SQL Server verwendeten Funktionen. Hier haben wir hauptsächlich zwei Arten von Funktionen kennengelernt, die im SQL Server verwendet werden: Systemfunktionen und benutzerdefinierte Funktionen.