Внутри процедуры мы можем использовать операторы DML (Вставить / Обновить / Удалить), но внутри функции мы не можем использовать операторы DML.
Процедура может иметь оба входных / выходных параметра, но функция может иметь только входной параметр.
Мы можем использовать блок Try-Catch в хранимой процедуре, но в функции Мы не можем использовать блок Try-Catch.
Мы не можем использовать хранимую процедуру в операторе Select, но в функции мы можем использовать в операторе Select.
Хранимая процедура может возвращать 0 или n значений (максимум 1024), но функция может возвращать только 1 значение, которое является обязательным.
Хранимая процедура не может быть вызвана из функции, но мы можем вызвать функцию из хранимой процедуры.
Мы можем использовать транзакцию в хранимой процедуре, но в функции мы не можем использовать транзакцию.
Мы не можем использовать хранимую процедуру в выражении Sql где-либо в разделе Где / Имеем / выберите, но в функции, которую мы можем использовать.
Мы не можем присоединиться к хранимой процедуре, но мы можем присоединиться к функции.
для получения дополнительной информации .. нажмите здесь ... http://dotnet -developers-cafe.blogspot.in / 2013/08 / разница между хранимой процедурой и.html