Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Funktion vs. gespeicherte Prozedur in SQL Server

Funktionen sind berechnete Werte und können keine dauerhaften Umgebungsänderungen an SQL Server vornehmen (d.h. kein INSERT oder UPDATE Anweisungen erlaubt).

Eine Funktion kann inline in SQL verwendet werden Anweisungen, wenn es einen skalaren Wert zurückgibt, oder verknüpft werden können, wenn es eine Ergebnismenge zurückgibt.

Ein erwähnenswerter Punkt aus Kommentaren, die die Antwort zusammenfassen. Danke an @Sean K. Anderson:

Funktionen folgen der Definition der Informatik dahingehend, dass sie einen Wert zurückgeben MÜSSEN und die Daten, die sie als Parameter (die Argumente) erhalten, nicht ändern können. Funktionen dürfen nichts ändern, müssen mindestens einen Parameter haben und einen Wert zurückliefern. Storedprocs müssen keine Parameter haben, können Datenbankobjekte ändern und müssen keinen Wert zurückgeben.