Grundlegender Unterschied
Eine Funktion muss einen Wert zurückgeben, aber in einer gespeicherten Prozedur ist dies optional (eine Prozedur kann null oder n Werte zurückgeben).
Funktionen können nur Eingabeparameter haben, während Prozeduren Eingabe-/Ausgabeparameter haben können.
Funktion nimmt einen Eingabeparameter ist es obligatorisch, aber Stored Procedure kann o bis n Eingabeparameter nehmen.
Funktionen können von Prozeduren aufgerufen werden, während Prozeduren nicht von Funktionen aufgerufen werden können.
Vorlaufdifferenz
Prozeduren erlauben sowohl SELECT- als auch DML-Anweisungen (INSERT/UPDATE/DELETE), während Funktionen nur SELECT-Anweisungen erlauben.
Prozeduren können nicht in einer SELECT-Anweisung verwendet werden, während eine Funktion in eine SELECT-Anweisung eingebettet werden kann.
Stored Procedures können nicht in den SQL-Anweisungen irgendwo im WHERE/HAVING/SELECT-Abschnitt verwendet werden, während Function dies kann.
Funktionen, die Tabellen zurückgeben, können als weiteres Rowset behandelt werden. Dies kann in JOINs mit anderen Tabellen verwendet werden.
Inline-Funktionen können als Ansichten betrachtet werden, die Parameter annehmen und in JOINs und anderen Rowset-Operationen verwendet werden können.
Ausnahmen können in einer Prozedur durch einen try-catch-Block behandelt werden, während ein try-catch-Block in einer Funktion nicht verwendet werden kann.
Wir können für die Transaktionsverwaltung in Verfahren gehen, während wir nicht in Funktion gehen können.
Quelle
6 Stimmen
venkatsqlinterview.blogspot.com/2011/05/
1 Stimmen
wiki.answers.com/Q/
1 Stimmen
searchsqlserver.techtarget.com/tip/
3 Stimmen
Wie sieht es mit der Geschwindigkeit aus? Wer führt die gleiche Abfrage schneller aus?
0 Stimmen
Es ist erwähnenswert, dass SP Transaktionen erstellen kann, während die Funktion nicht