Heim  >  Artikel  >  Datenbank  >  Schreiben Sie Funktionen und gespeicherte Prozeduren in SQL Server

Schreiben Sie Funktionen und gespeicherte Prozeduren in SQL Server

王林
王林nach vorne
2023-09-16 15:13:02627Durchsuche

在 SQL Server 中编写函数和存储过程

Eine Sammlung von SQL-Anweisungen, die in gespeicherten Prozeduren und Funktionen enthalten sind, Datenbankobjekten, die zur Ausführung bestimmter Aufgaben verwendet werden (oder auch in der Datenwissenschaft verwendet werden können). Die beiden unterscheiden sich in vielerlei Hinsicht.

In diesem Artikel gehen wir ausführlich auf Funktionen und Abläufe und deren Unterschiede ein.

Beginnen wir mit gespeicherten Prozeduren -

Gespeicherte Prozeduren in SQL

Einfach geschriebener SQL-Code wird zur mehrfachen Wiederverwendung gespeichert und bildet eine gespeicherte Prozedur. Wenn Ihnen eine Abfrage einfällt, die Sie häufig schreiben, können Sie sie als gespeicherte Prozedur speichern und dann diese gespeicherte Prozedur aufrufen, um den SQL-Code auszuführen, den Sie als Teil der gespeicherten Prozedur gespeichert haben. Dies erspart Ihnen das wiederholte Schreiben derselben Fragen.

Sie können denselben SQL-Code wiederholt ausführen und Parameter für gespeicherte Prozeduren bereitstellen. Bei Bedarf reagiert die gespeicherte Prozedur entsprechend den bereitgestellten Parameterwerten.

Die Leistung kann auch durch gespeicherte Prozeduren verbessert werden. Zur Ausführung mehrerer Aufgaben wird eine Reihe von SQL-Anweisungen verwendet. Welche SQL-Anweisungen als nächstes ausgeführt werden, hängt von den Ergebnissen der anfänglichen SQL-Anweisung und der bedingten Logik ab. Diese SQL-Anweisungen und die darin enthaltene bedingte Logik können zu einem einzigen Ausführungsplan auf dem Server zusammengefasst werden, indem sie in eine gespeicherte Prozedur geschrieben werden. Da die gesamte Arbeit auf dem Server ausgeführt wird, kann die bedingte Logik ausgeführt werden, ohne dass die Ergebnisse an den Client übergeben werden.

Vorteile gespeicherter Prozeduren

Kompilieren und ausführen

Jede gespeicherte Prozedur wird einmal von SQL Server kompiliert und dann wird der Ausführungsplan wiederverwendet. Wenn gespeicherte Prozeduren häufig aufgerufen werden, sind die Leistungsverbesserungen enorm.

Reduzierter Client-/Server-Verkehr

Wenn die Netzwerkbandbreite in Ihrer Umgebung ein Problem darstellt, werden Sie es zu schätzen wissen, dass gespeicherte Prozeduren langwierige SQL-Suchen in einer einzigen Zeile komprimieren können, die über die Leitung übertragen werden kann.

Effiziente Code-Wiederverwendung und Programmierabstraktion

Gespeicherte Prozeduren stehen vielen Benutzer- und Clientanwendungen zur Verfügung. Wenn Sie sie auf geplante Weise verwenden, dauert es weniger Zeit, den Entwicklungszyklus abzuschließen.

Erweiterte Sicherheitsmaßnahmen

Unabhängig von den Berechtigungen für die zugrunde liegende Tabelle können Sie Benutzern Zugriff zum Ausführen gespeicherter Prozeduren gewähren.

Funktionen in SQL

SQL Server unterstützt zwei Arten von Funktionen

Eingebaute Funktionen

Eingebaute Funktionen funktionieren gemäß der Transact-SQL-Referenzdefinition und können nicht geändert werden. Nur Transact-SQL-Anweisungen, die der durch die Transact-SQL-Referenz festgelegten Syntax folgen, können diese Funktionen als Referenz verwenden.

Das System hat diese Funktionen bereits definiert. Es ist in zwei Kategorien unterteilt -

In diesem Tutorial beziehen wir uns auf die folgende Tabelle -

ID

Name

Tag

Alter

1

Stern

90

19

2

Suresh

50

20

3

Pratik

80

21

4

Dhanraj

95

19

5

Ram

85

18

Skalarfunktion

Diese Operationen nehmen einen Wert als Eingabe und geben ihn aus. Einige systemische Skalaroperationen umfassen -

  • round() – Rundet eine Zahl auf die nächsten drei Ziffern. Zum Beispiel ergibt „round(28.64851)“ 28,649

SELECT ROUND(MARKS,0) FROM students;
  • upper() - Upper("english") gibt Englisch zurück, Lower("ENGLISH") gibt Englisch zurück.

SELECT upper(NAME) FROM Students;

Ausgabe

HARSH
SURESH
PRATIK
DHANRAJ
RAM
  • rand() – Mit der Funktion rand() wird eine Zufallszahl in einem Bereich zurückgegeben. Rand(8) gibt beispielsweise 0,71372242401 oder eine andere zufällig generierte Zahl zurück.

Systemaggregatfunktion

Diese Funktionen geben einen einzelnen Wert zurück, diese Funktionen akzeptieren eine Sammlung von Eingabeargumenten. Beispiele hierfür sind -

Avg() liefert den Durchschnittswert für alle bereitgestellten Eingaben.

Beispiel

SELECT AVG(MARKS) FROM Students;

Ausgabe

80

Count() Diese Funktion gibt die Anzahl der Zeilen zurück, die die gegebene Bedingung erfüllen.

Beispiel

SELECT COUNT(*) FROM Students;

Ausgabe

5

Max() und min() Die Funktionen max() und min() geben den höchsten und niedrigsten Wert unter den angegebenen Argumenten zurück.

Beispiel

SELECT MAX(AGE) FROM Students

Ausgabe

21

Beispiel

SELECT MIN(AGE) FROM Students;

Ausgabe

18

Benutzerdefinierte Funktionen

Erstellen Sie benutzerdefinierte Transact-SQL-Funktionen mit dem Befehl CREATE FUNCTION. Benutzerdefinierte Funktionen stellen einen einzelnen Wert bereit und erfordern null bis mehr Eingabeparameter. Einige benutzerdefinierte Funktionen (UDFs) geben einen einzelnen Datenwert zurück, beispielsweise eine Dezimalzahl, ein Zeichen oder eine Ganzzahl.

Skalare Operationen

Benutzerdefinierte Skalarfunktionen geben für jeden Schritt der Funktionsoperation einen Wert aus. Gibt einen beliebigen Datentypwert in der Funktion zurück.

Tabellenwertige Funktionen

Inline-Funktionen

Inline-Tabellenfunktionen mit benutzerdefinierten Werten führen Operationen aus und geben die Ergebnisse als Tabelle zurück. Es gibt keinen BEGIN/END-Körper. Verwenden Sie einfach eine SELECT-Anweisung, um die Ergebnisse zu erhalten.

Funktionen mit mehreren Anweisungen

Wenn eine benutzerdefinierte Funktion eine nicht änderbare SELECT-Anweisung oder mehrere SELECT-Anweisungen enthält, ändern sich die Ergebnisse nicht. Wir müssen Tabellenvariablen explizit angeben und die Werte beschreiben, die aus verschiedenen SQL-Abfragen abgerufen werden können.

Vorteile benutzerdefinierter Funktionen

  • Unterstützung der modularen Programmierung

  • Die Funktion kann einmal erstellt, in der Datenbank gespeichert und dann beliebig oft in der Software verwendet werden. Benutzerdefinierte Funktionen können geändert werden, ohne den Quellcode der Anwendung zu ändern.

  • Sie beschleunigen die Ausführung

  • Benutzerdefinierte Transact-SQL-Funktionen (z. B. gespeicherte Prozeduren) reduzieren die Kompilierungskosten, indem sie Pläne zwischenspeichern und für mehrere Ausführungen wiederverwenden. Da benutzerdefinierte Funktionen nicht bei jeder Verwendung erneut analysiert und optimiert werden müssen, wird die Ausführungszeit erheblich verkürzt.

  • Bei Rechenlasten, Geschäftslogik und String-Operationen schneiden CLR-Funktionen deutlich besser ab als Transact-SQL-Funktionen. Datenzugriffsintensive Logik eignet sich besser für Transact-SQL-Vorgänge.

  • Sie können die Netzwerkaktivität verringern.

  • Funktionen können zur Darstellung von Operationen verwendet werden, die Informationen basierend auf komplexen Einschränkungen filtern, die nicht durch einen einzelnen numerischen Ausdruck dargestellt werden können. Um die Anzahl der an den Client bereitgestellten Zeilen zu reduzieren, kann diese Funktion in der WHERE-Klausel verwendet werden.

Der Unterschied zwischen benutzerdefinierten Funktionen und gespeicherten Prozeduren

Die folgende Tabelle zeigt die wichtigsten Unterschiede zwischen benutzerdefinierten Funktionen und gespeicherten Prozeduren in SQL -

Standard

Benutzerdefinierte Funktionen

Gespeicherte Prozedur

Rückgabewert

Einzelwert

Einzeln, mehrfach oder sogar null

Parameter

Wert eingeben

Eingabe- und Ausgabewerte

Datenbank

Kann nicht geändert werden

kann geändert werden

Statement

Nur SELECT-Anweisung

SELECT- und DML-Anweisungen

Anruf

Anruf vom Verfahren

kann nicht von der Funktion aufgerufen werden

Kompilieren und ausführen

Muss jedes Mal kompiliert werden

Nur einmal kompilieren

Transaktionsmanagement

Unmöglich

Unmöglich

Fazit

In diesem Artikel haben wir uns eingehend mit gespeicherten Prozeduren und ihren Vorteilen, Funktionen, Funktionstypen und Vorteilen von Funktionen befasst und abschließend den Unterschied zwischen Funktionen und gespeicherten Prozeduren erläutert.

Das obige ist der detaillierte Inhalt vonSchreiben Sie Funktionen und gespeicherte Prozeduren in SQL Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen