Можете ли да ми кажете каква е необходимостта от запомнена процедура, когато има UDF?
Отговори:
2 за отговор № 1Върху горната част на главата ми, запомнената процедура може да направи следното, което СДС не може да направи:
1) Промяна на данните
2) Връщате набор от резултати на клиент
3) Извършвайте недетерминистична дейност
1 за отговор № 2
Може да се извърши процедура DML
, функция не може.
По принцип функцията е предназначена да бъде използвана като част от заявката, докато запаметената процедура е партида SQL
изявленията се изпълняват заедно, като се прилага някаква бизнес логика, евентуално с различни идентификационни данни.
1 за отговор № 3
Функцията не може директно да променя или актуализира функциятабаза данни по какъвто и да е начин, или чрез изрази DML (INSERT, UPDATE, DELETE, ect) или изрази DDL (CREATE TABLE и др.). Той също така не може да направи нищо, което би довело непряко до промени в базата данни, като например изпълнение на ad hoc SQL изрази (от всякакъв вид) или изпълнение на запомнени процедури.
1 за отговор № 4
Една ключова разлика е, че UDF винаги имат изход от фиксирана схема, като запомнените процедури могат да доведат до произволен брой набора от резултати в произволен формат.
0 за отговор № 5
Sprocs се използват за връщане на изход към приложение. A UDF връща таблична променлива.