Funciones SQL Server
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.
Sigue este Blog desde Telegram: Clic aquí para unirte al canal
Comments
Post a Comment