mohammad ehsan Ответов: 3

разница между хранимой процедурой и функцией в sqlserver


Привет.

я хотел бы знать, в чем разница между хранимой процедурой и функцией в SqlServer ?
и где каждый из них используется ?

например, я только что написал хранимую процедуру и закончил ее с помощью return @ @ Identity Итак, можем ли мы сказать, что это fucntion, потому что это вернет значение ?
подобные проблемы отвлекали меня.

3 Ответов

Рейтинг:
9

♥…ЯҠ…♥

Спасибо за вопрос, у меня тоже есть это сомнение, мой друг.
Я погуглил наши сомнения и пришел сюда с ответом.

Это разница между процедурой хранения и функцией.

Хранимой Процедуры Против. Функция в sql server
Процедура может возвращать ноль или n значений, в то время как функция может возвращать одно значение, которое является обязательным.
Процедуры могут иметь входные / выходные параметры для него, в то время как функции могут иметь только входные параметры.
Процедура допускает в ней как select, так и DML-оператор, в то время как функция допускает в ней только select-оператор.
Функции могут быть вызваны из процедуры, тогда как процедуры не могут быть вызваны из функции.
Исключение может быть обработано блоком try-catch в процедуре, тогда как блок try-catch не может быть использован в функции.
Мы можем пойти на управление транзакциями в процедуре, тогда как мы не можем пойти в функции.
Процедуры не могут быть использованы в операторе select, в то время как функция может быть встроена в оператор select.
UDF можно использовать в SQL-операторах в любом месте раздела WHERE/HAVING/SELECT, где as хранимых процедур быть не может.
UDFs, возвращающие таблицы, можно рассматривать как другой набор строк. Это можно использовать в соединениях с другими таблицами.
Встроенные UDF можно рассматривать как представления, которые принимают параметры и могут использоваться в соединениях и других операциях набора строк.
Надеюсь, это развеет наши сомнения, мой друг.


Рейтинг:
26

Shambhoo kumar

Функции
----------
1) может использоваться с оператором Select
2) не возвращает выходной параметр, а возвращает табличные переменные
3) Вы можете присоединиться к UDF
4) не может быть использован для изменения конфигурации сервера
5) не может использоваться с предложением XML FOR
6) не может иметь транзакцию внутри функции

хранимая процедура
-----------------
1) должны использовать EXEC или EXECUTE
2) возврат выходного параметра
3) может создавать таблицу, но не будет возвращать табличные переменные
4) Вы не можете присоединиться к SP
5) может быть использован для изменения конфигурации сервера
6) может использоваться с XML для предложения
7) может быть транзакцию в СП

Уважение
Фиктивный
:)