Professional Documents
Culture Documents
Una funcin escalar retorna un nico valor. Como todas las funciones, se crean con l
a instruccin "create function". La sintaxis bsica es:
create function NOMBRE
(@PARAMETRO TIPO=VALORPORDEFECTO)
returns TIPO
begin
INSTRUCCIONES
return VALOR
end;
Luego del nombre se colocan (opcionalmente) los parmetros de entrada con su tipo.
La clusula "returns" indica el tipo de dato retornado.
El cuerpo de la funcin, se define en un bloque "begin...end" que contiene las ins
trucciones que retornan el valor. El tipo del valor retornado puede ser de cualq
uier tipo, excepto text, ntext, image, cursor o timestamp.
Creamos una simple funcin denominada "f_promedio" que recibe 2 valores y retorna
el promedio:
create function f_promedio
(@valor1 decimal(4,2),
@valor2 decimal(4,2)
)
returns decimal (6,2)
as
begin
declare @resultado decimal(6,2)
set @resultado=(@valor1+@valor2)/2
return @resultado
end;
Entonces, luego de "create function" y el nombre de la funcin, se deben especific
ar los parmetros de entrada con sus tipos de datos (entre parntesis), el tipo de d
ato que retorna luego de "returns", luego de "as" comienza el bloque "begin...en
d" dentro del cual se encuentran las instrucciones de procesamiento y el valor r
etornado luego de "return".
En el ejemplo anterior se declara una variable local a la funcin (desaparece al s
alir de la funcin) que calcula el resultado que se retornar.
Al hacer referencia a una funcin escalar, se debe especificar el propietario y el
nombre de la funcin:
select dbo.f_promedio(5.5,8.5);
Cuando llamamos a funciones que tienen definidos parmetros de entrada DEBEMOS sum
inistrar SIEMPRE un valor para l.
Si llamamos a la funcin anterior sin enviarle los valores para los parmetros:
select dbo.f_promedio();
SQL Server muestra un mensaje de error indicando que necesita argumentos.
Creamos una funcin a la cual le enviamos una fecha y nos retorna el nombre del me
s en espaol: