UDF vs lagrad procedur i SQL
SQL-miljön kommer med olika komponenter som arbetar med den för att lyckas leverera de uppgifter som finns till hands. Det finns den användardefinierade funktionen och den lagrade proceduren, som är vanliga inom SQL-miljön. Det är skillnaderna mellan dessa två som ses nedan.
skillnader
Den första skillnaden som ses med den användardefinierade funktionen är att den är programmerad så att den måste returnera ett värde. Den lagrade proceduren har viss ersättning för huruvida eller inte ett värde ska returneras. Det beror på huruvida den lagrade proceduren har ett värde att returnera.
En annan skillnad som ses mellan den användardefinierade funktionen och den lagrade proceduren gäller uttalanden. Den användardefinierade funktionen tillåter bara att valda satser ska läsas medan DML-satser inte är tillåtna. Å andra sidan tillåter lagrad procedur användning av både valda uttalanden, liksom DML-deklarationerna, som också kan uppdateras och manipuleras.
Den användardefinierade funktionen tillåter bara inmatning av parametrar men stöder inte utdata från samma parametrar. Lagrad procedur, tvärtom, stöder både inmatnings- och utgångsparametrar. UDF tillåter inte heller användning av provtagningsblock. Lagrad procedur möjliggör användning av försöksfångstblocken för undantagshantering.
UDF tillåter inte att transaktioner uppträder inom funktionerna. Denna funktionalitet är tillgänglig i den lagrade proceduren som möjliggör transaktionshantering. UDF tillåter inte heller användning av tabellvariabler och det tillåter inte heller tillfälliga tabeller. Lagrad procedur tillåter emellertid användningen av tabellvariabler samt en tillfällig tabell i den.
När en funktion tillåter UDF inte att lagrade tabeller ska hämtas från den. Det här är helt annorlunda när det gäller lagrad procedur, vilket gör att funktionen kan ringas utan begränsning. När med funktioner tillåter UDF inte att nämnda funktioner ska hämtas från ett vald uttalande. Lagrad procedur innehåller också att procedurer inte kan ringas från var / välj och har uttalanden. Exec eller Execute kan dock användas för att ringa eller ens exekvera den lagrade proceduren. Sist men inte minst är att UDF kan användas för att skapa en medlemsklausul och utnyttja resultatuppsättningen. I lagrad procedur är detta inte möjligt eftersom inga förfaranden är tillåtna i en anslutningsklausul. Det är också viktigt att notera att lagrad procedur möjliggör återgång till noll eller jämn n-värden, medan UDF endast kan återgå till ett specifikt och förinställt värde som är förinställt.
Sammanfattning
Det är obligatoriskt för funktionen att returnera ett värde medan det inte är för lagrad procedur.
Välj uttalanden som endast accepteras i UDF medan DML-uppgifter inte är nödvändiga.
Lagrade procedurer accepterar några uttalanden såväl som DML-uttalanden.
UDF tillåter bara ingångar och inte utgångar.
Lagrad procedur möjliggör både ingångar och utgångar.
Fångstblock kan inte användas i UDF men kan användas i lagrad procedur.
Inga transaktioner tillåtna i funktioner i UDF men i lagrad procedur är de tillåtna.
Endast tabellvariabler kan användas i UDF och inte tillfälliga tabeller.
Lagrad procedur möjliggör både tabellvariabler och temporära tabeller.
UDF tillåter inte lagrade procedurer att ringas från funktioner medan lagrade procedurer tillåter uppringning av funktioner.
UDF används i anslutningsklausul medan lagrade procedurer inte kan användas i anslutningsklausulen.
Lagrad procedur tillåter alltid att återgå till noll. UDF, tvärtom, har värden som måste återgå till en förutbestämd punkt.