Stored procedures предназначены для выполнения действий — они могут изменять данные, модифицировать объекты схемы и управлять транзакциями. Functions предназначены для вычисления и возврата значения, что делает их подходящими для использования в SQL-выражениях.
OUTPUTКлючевое отличие в том, что функции в большинстве баз данных ограничены в создании побочных эффектов:
INSERT, UPDATE, DELETE и управлять транзакциямиВот где практическое различие становится наиболее важным:
SELECT-запросаSELECT-запросEXECUTE или EXEC-- Function используется внутри запроса
SELECT dbo.GetFullName(EmployeeID) FROM Employees;
-- Stored procedure вызывается отдельно
EXEC GetEmployeeDetails @EmployeeID = 1;
Хранимые процедуры могут возвращать ноль или более результирующих наборов с помощью OUTPUT параметров, в то время как функции всегда должны возвращать ровно одно значение скалярного или табличного типа.
Новый — ещё не проверен сообществом
Вы