Funciones escalares en SQL Server

Además de ejecutar consultas en el momento, es posible crear funciones escalares en SQL Server listas para ser ejecutadas desde otras consultas.

SQL Server maneja dos tipos de funciones que el usuario puede crear.

  • Funciones escalares (UDF).
  • Funciones con valor de tabla (TVF)

Las funciones escalares toman un valor de entrada para devolver un resultado único a la consulta que la invoco.

Ubicación de funciones escalares en SQL

Así como los procedimientos almacenados, las funciones también esta ubicadas en la carpeta de programación de la base de datos.

Dentro de esta carpeta encontramos la capeta de nombre Funciones Valor-Escalar, esta es la ubicación de estas funciones.

Carpeta de funciones escalares sql

Crear una función

En la carpeta que almacenara las funciones escalares damos clic derecho, seleccionamos nueva función de valor escalar.

Crear función escalar en sql

Se crea un query con la estructura de la función.

Funciones escalares en SQL Server

Los puntos mas destacados que debemos tomar en cuenta son.

  1. Variable que recibe el valor del usuario.
  2. Tipo de dato de retorno al usuario.
  3. Operaciones.
  4. Resultado de retorno.

Conociendo estos puntos podemos crear una función real que nos devuelva el resultado de una operación.

Podría interesarte Variable de tipo tabla en SQL Server  

Ejemplo

Crearemos un ejemplo sencillo para la mostrar como funciona este tipo de función.

Calcular la raíz cuadrada de un número.

Tomando de base la estructura vista anteriormente vamos a colocar los datos necesarios de la función y simplificar un poco el código.

Analizando el problema y viendo los cuatro puntos principales marcados anteriormente son.

  1. Valor de entrada es un numero entero o decimal.
  2. Tipo de dato de retorno será un decimal.
  3. Calcular la raíz cuadrada.
  4. Retornar el resultado de la raíz cuadrada.

De acuerdo a estos puntos, la función quedara de la siguiente manera.

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Gerardo Alvarez
-- Create date: 01/07/2019
-- Description:	Calcular raiz cuadrada de un numero
-- =============================================
CREATE FUNCTION CALCULAR_RAIZ_CUADRADA
(
	@VALOR FLOAT
)
RETURNS FLOAT
AS
BEGIN
	DECLARE @RESULTADO FLOAT;
	SET @RESULTADO = SQRT(@VALOR);

	RETURN @RESULTADO;
END
GO

Una vez que tenemos el procedimiento debemos guardarlo, para ello hay que ejecutarlo.

Ejecucion de funciones escalares

Listo, ya tenemos una función en la carpeta de funciones escalares, comprueba revisando la carpeta.

Funcion escalar en sql server

Podría interesarte Cursores en SQL Server  

Utilizar función escalar

Ya que tenemos la función que calcula la raíz cuadra de un número, probemos que funciona.

Utilizando una consulta select llamaremos a la función escalar, le enviaremos un numero para el cálculo.

SELECT dbo.CALCULAR_RAIZ_CUADRADA(99);

Colocando el nombre del esquema (dbo) e instanciando la función (CALCULAR_RAIZ_CUADRADA), enviamos el número entre paréntesis.

De esta manera hacemos uso de las funciones escalares, el resultado es un valor único.

Resultado de funcion escalar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *