Różnica między UDF a procedurą składowaną w SQL
- 1087
- 204
- Paula Pilch
UDF vs procedura składowa w SQL
Środowisko SQL jest wyposażone w różne komponenty pracujące z nim w celu udanego dostarczania zadań. Istnieje funkcja zdefiniowana przez użytkownika i procedura składowana, które są powszechne w środowisku SQL. Są to różnice między tymi dwoma, które są recenzowane poniżej.
Różnice
Pierwszą różnicą, która jest widoczna w funkcji zdefiniowanej przez użytkownika, jest to, że jest ona zaprogramowana w sposób, który musi zwrócić wartość. Procedura przechowywana ma pewną zasiłek, czy zwrócić wartość. Zależy to od tego, czy procedura przechowywana ma wartość do zwrócenia.
Kolejna różnica między funkcją zdefiniowaną przez użytkownika a procedurą przechowywaną dotyczy instrukcji. Funkcja zdefiniowana przez użytkownika umożliwia tylko odczytanie instrukcji, podczas gdy instrukcje DML są niedozwolone. Z drugiej strony procedura przechowywana umożliwia użycie obu instrukcji wybranych, jak i instrukcji DML, które można również aktualizować i manipulować.
Funkcja zdefiniowana przez użytkownika pozwoli tylko na wprowadzenie parametrów, ale nie obsługuje wyjścia tych samych parametrów. Przeciwnie, przemieszczona procedura obsługuje parametry wejściowe, jak i wyjściowe. UDF nie pozwala również na użycie bloków próbnych. Procedura przechowywana pozwala na użycie bloków próbnych do obsługi wyjątków.
UDF nie pozwala również na wystąpienie transakcji w ramach funkcji. Ta funkcjonalność jest dostępna w procedurze przechowywanej, która umożliwia obsługę transakcji. UDF również nie pozwala na użycie zmiennych tabeli, a także nie pozwala na tabele tymczasowe. Procedura przechowywana pozwala jednak na zastosowanie zmiennych tabeli, a także tymczasową tabelę.
W funkcji UDF nie pozwala na wywołanie z niej przechowywanych tabel. Jest to zupełnie inne, jeśli chodzi o procedurę składowaną, co pozwala na wywołanie funkcji bez żadnych ograniczeń. W przypadku funkcji UDF nie zezwala na wywołanie wspomnianych funkcji z instrukcji Select. Procedura składowana również utrzymuje, że procedur nie można wywołać z miejsca/wyboru i wypowiedzi. Exec lub Execute można jednak użyć do wywołania lub nawet wykonania procedury przechowywanej. Ostatnie jest to, że UDF może być używane do tworzenia klauzuli łączenia, wykorzystując zestaw wyników. W procedurze przechowywanej nie jest to możliwe, ponieważ w klauzuli łączenia nie są dozwolone. Należy również zauważyć, że procedura przechowywana pozwala na powrót do wartości zero lub nawet n, podczas gdy UDF może powrócić tylko do jednej konkretnej i ustalonej wartości, która jest ustawiona.
Streszczenie
Zwracanie wartości funkcji jest obowiązkowe, choć nie jest to dla procedury przechowywanej.
Wybierz instrukcje akceptowane tylko w UDF, podczas gdy instrukcje DML nie są wymagane.
Procedura przechowywana akceptuje wszelkie stwierdzenia, a także oświadczenia DML.
UDF pozwala tylko na wejścia, a nie wyjścia.
Procedura przechowywana pozwala zarówno na wejścia, jak i wyjścia.
Bloki połowowe nie mogą być używane w UDF, ale można je stosować w procedurze przechowywanej.
Brak transakcji w funkcjach w UDF, ale w procedurze przechowywanej są one dozwolone.
Tylko zmienne tabeli mogą być używane w tabelach UDF, a nie tymczasowych.
Procedura przechowywana pozwala zarówno na zmienne tabeli, jak i tabele tymczasowe.
UDF nie zezwala na wywoływane procedury przechowywane z funkcji, podczas gdy procedury przechowywane umożliwiają wywołanie funkcji.
UDF jest używany w klauzuli łączenia, podczas gdy procedury przechowywane nie można użyć w klauzuli łączenia.
Procedura przechowywana zawsze pozwoli na powrót do zera. Przeciwnie, UDF ma wartości, które muszą wrócić do z góry określonego punktu.