В чем разница между хранимой процедурой и функцией?
Уровень: Senior
Ответ
Хранимая процедура вызывается как отдельная команда, может выполнять операции (в т.ч. DML) и возвращать через OUT-параметры или результат. Пользовательская функция вызывается как часть выражения (например, в SELECT), она обязана вернуть значение (скалярное или таблицу). Функция, как правило, не должна менять данные (нет побочных эффектов), в то время как процедура может проводить любые изменения, коммитить транзакции и т.д. Также процедуру нельзя вызывать прямо в SELECT, а функцию можно.