Está en la página 1de 9

CUADERNO VIRTUAL

ING. MUÑOZ ROBLES, Williams Antonio


UNIVERCIDAD NACIONAL DANIEL ALCIDES CARRION
ESCUELA DE FORMACION PROFECIONAL SISTEMAS Y
COMPUTACION

Yerson Cristobal Vicente

2020
Contenido
Ejemplos de funciones.................................................................................................................2
Ejemplo de Trigger.......................................................................................................................3
Ejemplo de Cursores....................................................................................................................4
Ejemplos de Creación de Objetos.................................................................................................5
Ejemplos de Creation De Metodos Menbers................................................................................7
Ejemplos de funciones

1. Averiguar cuantas veces ha sacado un libro de la biblioteca un usuario en un


lapso de tiempo determinado.

CREATE FUNCTION Biblioteca
(@idUsuario INT, @fecha_inicio DATETIME, @fecha_final DATETIME)
RETURNS INT
AS
BEGIN
DECLARE @cantidad_ocasiones INT;
SELECT @cantidad_ocasiones = COUNT (a. idUsuario)
FROM Biblioteca.Sacar_Libro AS a
WHERE a. idUsuario = @
idUsuario AND (fecha_Utilizacion BETWEEN @fecha_inicio AND @fecha_final);
IF (@cantidad_ocasiones IS NULL)
SET @cantidad_ocasiones = 0;
RETURN @cantidad_ocasiones;
END

2. Consultar todas las salidas de la biblioteca realizadas para un libro específico.


Usar el código del libro para generar los resultados y mostrar el nombre de la
persona que lo sacó, la fecha de salida y de devolución.

CREATE FUNCTION Salidas_libro (@idlibro VARCHAR (12))


RETURNS TABLE
AS
RETURN (
SELECT Invb.Nombre_Libro, Usu.Nombre_Usuario, MovB.Fecha_Salida,
MobB.Fecha_Devolucion
FROM
tbInventario_Biblioteca AS Invb JOIN tbMovimientos_Biblioteca AS Movb ON Invb.I
DCLIENTE = MovB.IDCLIENTE
JOIN tbUsuarios AS Usu ON Usu.IdUsuario = MovB.IDUsuario
WHERE Invb.IdLibro = @idLibro)

SELECT Count (Invb.Nombre_Libro) FROM Salidas_libro ('ISBN00000000')

3. Es una función que regresa el dato nvarchar en mayúsculas.

CREATE FUNCTION Mayúsculas
(
@Nombre Varchar (50),
@Apellido Varchar (50)
)
RETURNS Varchar (100)
AS
BEGIN
 RETURN (UPPER(@Apellido) + ', ' + UPPER(@Nombre))
END

Print dbo. Mayúsculas ('damian’,’ ruiz')

Ejemplo de Trigger

4. Se graba un histórico de stock cada vez que se modifica un artículo de la tabla


“artículos”.

CREATE TRIGGER TR_ARTICULOS


ON ARTICULOS
AFTER UPDATE
AS
BEGIN
INSERT INTO HCO_STOCK
(IDARTICULO, STOCK, FECHA)
SELECT IDARTICULO, STOCK, getdate ()
FROM INSERTED
END

5. Podemos hacer que el trigger del ejemplo 1 se desencadene sólo si una columna
es afectada.

CREATE TRIGGER TR_ARTICULOS


ON ARTICULOS
AFTER UPDATE
AS
BEGIN
IF UPDATE (STOCK) -- sólo si actualiza STOCK
BEGIN
INSERT INTO HCO_STOCK
(IDARTICULO, STOCK, FECHA)
SELECT IDARTICULO, STOCK, getdate ()
FROM INSERTED
END
END
6. Crear un Trigger que permita comprobar que se inserta una categoría con
nombre diferente. La tabla Inserted será utilizada para comprobar si ya hay una
categoría con el mismo nombre que la insertada.

CREATE TRIGGER trCategoriaInsertaSinRepetidos ON Categoria For Insert


AS
IF (Select COUNT (*) From Inserted, Categories
WHERE Inserted. CategoriaNombre = Categoria.CategoriaNombre) >1
BEGIN
Rollback Transaction
PRINT ‘El Nombre de la Categoria ya existe…’
END
ELSE
PRINT ‘Categoría ingresada a la Base de datos’
GO

Ejemplo de Cursores

7. Declarar los nombres para poder modificar con un cursor los datos que nos
piden los clientes.

DECLARE @Id INT,


@Nombre VARCHAR (255),
@Apellido1 VARCHAR (255),
@Apellido2 VARCHAR (255),
@NifCif VARCHAR (20),
@FechaNacimiento DATETIME
DECLARE Clientes CURSOR FOR
SELECT Id_Nombre, Apellido1,
Apellido2, NifCif, FechaNacimiento
FROM CLIENTES
FOR UPDATE
-- Apertura del cursor
OPEN Clientes
-- Lectura de la primera fila del cursor
FETCH Clientes
INTO @id, @Nombre, @Apellido1, @Apellido2, @NifCif, @FechaNacimiento
WHILE (@@FETCH_STATUS = 0)
BEGIN
UPDATE Clientes
SET APELLIDO2 = isnull(@Apellido2,'') + ' - Modificado'
WHERE CURRENT OF Clientes
-- Lectura de la siguiente fila del cursor
FETCH Clientes
INTO @id, @Nombre, @Apellido1, @Apellido2,
@NifCif, @FechaNacimiento
END
-- Cierre del cursor
CLOSE Clientes
-- Liberar los recursos
DEALLOCATE Clientes

Ejemplos de Creación de Objetos

8. EJEMPPLO 1

CREANDO EL OBJETO

CREATE TYPE ejem1 AS Object (


nombre VARCHAR (30),
celular VARCHAR (30),
);
CREANDO LA TABLA

CREATE TABLE empleado (


id_empleado CHAR (5) primary key,
st ejem1
);
INSERTANDO DATOS

INSERT INTO empleado


VALUES (001, ejem1('Samuel','987654123'));
INSERT INTO empleado
VALUES (002, ejem1('Adrian','9572145543'));
INSERT INTO empleado
VALUES (003, ejem1('Jaquelin','926547823'));
UPDATE

UPDATE empleado
set s.st. nombre ='Samuel'
where id_emp = 002
DELETE

DELETE FROM empleado


WHERE s.st. nombre ='Samuel'
SELECT

SELECT s.st. nombre FROM empleado s;


9. Ejemplo 2

CREANDO EL OBJETO

CREATE TYPE datos AS Object (


nombre VARCHAR (30),
apellido VARCHAR (30),
DNI VARCHAR (30)
);
CREANDO LA TABLA

CREATE TABLE alumno (


id_alumno CHAR (5) primary key,
st datos
);
INSERTANDO DATOS

INSERT INTO alumno


VALUES (001, datos ('carlos','gonzales','71530522'));
INSERT INTO alumno
VALUES (002, datos ('max','ramos','74561247'));
INSERT INTO alumno
VALUES (003, datos ('Joaquin','perez','04563047'));
UPDATE

UPDATE alumno
set s.st. apellido ='Zarate'
where id_emp = 002
DELETE

DELETE FROM alumno s


WHERE s.st. apellido ='Zarate'
SELECT

SELECT s.st. apellido FROM alumno s;

10. Ejemplo 3

CREANDO EL OBJETO

CREATE TYPE piesa_typ AS Object (


marca VARCHAR (30),
matricula VARCHAR (30)
);
CREANDO LA TABLA

CREATE TABLE Volquete (


id_Volquete CHAR (5) primary key,
st objeto_typ
);
INSERTANDO DATOS

INSERT INTO Volquete


VALUES (001, piesa_typ ('VOLVO','YHU564'));
INSERT INTO Volquete
VALUES (002, piesa_typ ('Mercedes Bens','HTR334'));
INSERT INTO Volquete
VALUES (003, piesa_typ ('Sinotruk','GTX234'));
UPDATE

UPDATE Volquete
SET s.st. marca ='Scania'
WHERE id_voquete = 001
DELETE

DELETE FROM Volquete s


WHERE s.st. marca ='Scania'
SELECT

SELECT s.st. marca FROM Volquete s;

Ejemplos de Creation De Metodos Menbers

También podría gustarte