Funciones SQL Server

funciones
SQL Server nos proporciona una numerosa cantidad de funciones integradas del sistema, el cual en esta ocasión hablaré sólo de algunas, además de estas funciones, SQL permite crear funciones de usuario, las cuales podemos crear consultando tablas de nuestra base de datos e incluso combinando con funciones del sistema u otras funciones de usuario.

A considerar al implementar Funciones.

  • Las funciones no pueden ejecutar Procedimientos Almacenados (S.P.).
  • Solo se puede anidar hasta 32 funciones al momento de ejecutar.
  • No pueden insertar datos en otra tabla con la instrucción INTO ejemplo.

INSERT INTO Tabla2
       SELECT * FROM Tabla
  • No se puede formatear el resultado en XML.
  • En las funciones tipo tablas, el resultado no se puede regresar con la instrucción ORDER BY en el RETURN.
  • Solo las tablas temporales como variables están permitidas dentro de las funciones.

Sintaxis de creación, modificación y eliminado de las funciones.

Crear:

        CREATE FUNCTION <nombreFuncion>(<Parametro><TipodeDato>,…n) 

        RETURNS <TipodeDato> 
        AS
       BEGIN
      <Instruccion, operacion, etc.>
             RETURN <campo de regreso del mismo valor del regreso de la función>
       END

Modificar:
       ALTER FUNCTION <nombreFuncion>(<Parametro><TipodeDato>,…n) 
       RETURNS <TipodeDato> 
       AS
       BEGIN
     <Instruccion, operacion, etc.>
            RETURN <campo de regreso del mismo valor del regreso de la función>
       END

Borrar:
          DROP FUNCTION <nombreFuncion>

Tipos de Funciones

Existen 3 tipos de funciones que se puede utilizar dentro de SQL Server, Funciones Escalares, Funciones con valor de tablas y funciones integradas. (Con miedo a equivocarme, pero aquí explicare estos 3 tipos.)



Funciones escalares: Estas funciones devuelven un único valor, al momento de crear la función, se debe indicar que tipo de valor regresa la función. En el siguiente ejemplo es una función que regresa el dato nvarchar en mayusculas:

CREATE FUNCTION EnMayusculas
(
@Nombre Varchar(50),
@Apellido Varchar(50)
)
RETURNS Varchar(100)
AS
BEGIN
 RETURN (UPPER(@Apellido) + ', ' + UPPER(@Nombre))
END
--Ejecutar
Print dbo.EnMayusculas('damian','ruiz')

Funciones con valor de tabla: Estas funciones, como su nombre lo indica, el valor de retorno es de tipo tabla, esto indica que tiene más de un valor de retorno, se construyen de la siguiente manera.

Anexo el query para el siguiente ejemplo, tabla Personas con 3 datos.

CREATE TABLE Personas(
       PersId int PRIMARY KEY IDENTITY(1,1) NOT NULL,
       PersNombre nvarchar (80) NOT NULL,
       PersFecNacimiento datetime NULL,
       PersActiv bit NOT NULL
       )

INSERT INTO Personas VALUES ('angelica','1991-02-14',1)
INSERT INTO Personas VALUES ('braulio','1985-12-25',1)
INSERT INTO Personas VALUES ('carlos','1995-05-04',1)

Ejemplo de la función.

CREATE Function Tabla(@IdEmpleado int)
Returns Table
AS
       Return (Select dbo.enMayusculas(PersNombre) Nombre, PersFecNacimiento, PersActivo
       From Personas WHERE PersId = @IdEmpleado)

--Ejecutar
Select * From dbo.Tabla(1)


Nota: Es este ejemplo se utiliza las funciones anidadas, el cual solo se puede llegar hasta 32 sub niveles en las funciones.

Funciones Integradas: Las funciones integradas son las que vienen directamente al instalar nuestra instancia y nuestro servidor de base de datos SQL Server. Aquí enlistare algunas funciones.
  • AVG(): Calcula el promedio.
  • SUM(): Realiza la suma.
  • COUNT(): Contabiliza el total de registros.
  • DATETIME(): Regresa la fecha y hora del sistema en SQL Server.
  • CONCAT(): Concatena cadenas de texto.
  • LOWER(): Regresa el texto en minúsculas.
  • UPPER(): Regresa el texto en mayúsculas.
  • MAX(): Regresa el valor máximo.
  • MIN(): Regresa el valor mínimo.
Nota: Dado a la tendencia de las publicaciones, creo que tomaré la decisión de subir nuevas entradas los días Martes, por el momento, seguiré subiendo lecciones sobre SQL Server.

Sigue este Blog desde Telegram: Clic aquí para unirte al canal

Compartir
Compartir

Comments

Week's Hit

Jobs SQL Server P1

Trigger SQL Server