Разлика между UDF и съхранена процедура в SQL

UDF срещу съхранена процедура в SQL

SQL средата се предлага с различни компоненти, работещи с нея, за успешно изпълнение на задачите, които са под ръка. Има определената от потребителя функция и съхранената процедура, които са общи в SQL средата. Разликите между тези две са разгледани по-долу.

Различията

Първата разлика, която се забелязва с дефинираната от потребителя функция, е, че тя е програмирана по начин, който трябва да върне стойност. Съхранената процедура наистина има някакво отчитане дали да се върне стойност или не. Това зависи от това дали съхранената процедура има стойност за връщане или не.

Друга разлика, наблюдавана между определената от потребителя функция и съхранената процедура, се отнася до операторите. Дефинираната от потребителя функция позволява да се четат само избрани оператори, докато DML изразите не са позволени. От друга страна, запаметената процедура позволява използването както на избрани оператори, така и на DML изразите, които също могат да бъдат актуализирани и манипулирани.

Потребителски зададената функция ще позволява само въвеждане на параметри, но не поддържа изхода на същите параметри. Съхранената процедура, напротив, поддържа както входните, така и изходните параметри. СДС също не позволява използването на пробни блокове. Съхранената процедура позволява използването на пробните блокове за обработка на изключения.

СДС също не позволява транзакции да се извършват в рамките на функции. Тази функционалност е налична в съхранената процедура, която позволява обработка на транзакции. UDF също не позволява използването на таблични променливи и също така не позволява временни таблици. Съхранената процедура обаче позволява използването на променливи на таблицата, както и временна таблица в нея.

Когато е във функция, UDF не позволява да се извикват запаметени таблици от нея. Това е съвсем различно, когато става въпрос за съхранена процедура, която позволява извикването на функцията без ограничения. Когато е с функции, UDF не позволява да се извикат посочените функции от оператор за избор. Съхранена процедура също така твърди, че процедурите не могат да бъдат извиквани от Where / Select и Have statement. Exec или Execute обаче може да се използва за повикване или дори изпълнение на съхранената процедура. Не на последно място е, че UDF може да се използва при създаването на клауза за присъединяване, използвайки набора от резултати. В съхранена процедура това не е възможно, тъй като в клаузата за присъединяване не се допускат никакви процедури. Важно е също така да се отбележи, че съхранената процедура позволява връщането до нула или дори n стойности, докато UDF може да се върне само към една конкретна и предварително зададена стойност, която е предварително зададена.

резюме

Задължително е Функцията да върне стойност, докато не е за съхранена процедура.
Изберете оператори, приети само в UDF, докато DML изразите не се изискват.
Съхранена процедура приема всякакви декларации, както и DML изрази.
UDF позволява само входове, а не изходи.
Съхранената процедура позволява както входове, така и изходи.
Блокове за улов не могат да се използват в UDF, но могат да се използват в съхранена процедура.
Не са разрешени транзакции във функции в UDF, но в съхранена процедура са позволени.
В UDF могат да се използват само променливи на таблица, а не временни таблици.
Съхранената процедура позволява както променливи на таблицата, така и временни таблици.
UDF не позволява запаметените процедури да се извикват от функции, докато съхранените процедури позволяват извикване на функции.
UDF се използва в клаузата за присъединяване, докато съхранените процедури не могат да бъдат използвани в клаузата за присъединяване.
Съхранената процедура винаги ще позволи връщане към нула. Напротив, СДС има стойности, които трябва да се върнат към предварително определена точка.