Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Procedimiento Almacenados-2
Procedimiento Almacenados-2
DOCENTE:
ING. JOSE EDGAR GARCIA DIAZ, MGR.
CURSO:
BASE DE DATOS II – G1
PARTICIPANTES:
IQUITOS, PERÚ
2023
PROCEDIMIENTO ALMACENADOS
1. creacion del procedimiento almacenado para obtener el precio maximo de un titulo
ingresando el tipo
COMMIT TRANSACTION
END
FUNCION
1. crear una función de tabla en línea que me permita mostrar los editores y la cantidad
de los títulos que estuvieron a sus servicios
RETURN @TotalVentas
END
RETURN
END
5.Obtener los títulos vendidos por año
RETURN
END
TRIGGERS
1. crear un trigger que actualiza con un precio especifico al insertar un registro en la
tabla title
OPEN author_cursor
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @total_sales = SUM(qty * price)
FROM sales s
JOIN titles t ON s.title_id = t.title_id
WHERE t.au_id = @au_id
PRINT 'Author ' + @au_id + ' has total sales of ' + CONVERT(varchar(20),
@total_sales)
CLOSE author_cursor
DEALLOCATE author_cursor
--obtener los títulos de todos los libros de la editorial Pubs y mostrarlos en la
consola.
-- Declaramos variables para el cursor
DECLARE @title_id varchar(6)
DECLARE @title varchar(80)
-- Declaramos el cursor
DECLARE cursor_titles CURSOR FOR
SELECT title_id, title
FROM titles
-- Abrimos el cursor
OPEN cursor_titles
-- Cerramos el cursor
CLOSE cursor_titles
DEALLOCATE cursor_titles
2.Este cursor imprime el titulo y el precio de cada libro
OPEN Titulo_cursor
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Titulo: ' + @titulo
PRINT 'Precio: ' + CONVERT(varchar(10), @precio)
CLOSE Titulo_cursor
DEALLOCATE Titulo_cursor
3.CONSULTAS UTILIZANDO EL CURSOR EN LA BASE DE DATOS PUBS
--1 OBTENER EL NÚMERO TOTAL DE VENTAS DE CADA LIBRO EN LA TABLA
"SALES" Y MOSTRAR EL RESULTADO
--EN UN TABLA
OPEN cur_sales
WHILE @@FETCH_STATUS = 0
BEGIN
SET @total_sales = @qty * (SELECT price FROM titles WHERE
title_id = @title_id)
IF EXISTS (SELECT * FROM #sales_summary WHERE title_id =
@title_id)
BEGIN
UPDATE #sales_summary SET total_sales = total_sales +
@total_sales WHERE title_id = @title_id
END
ELSE
BEGIN
INSERT INTO #sales_summary (title_id, total_sales) VALUES
(@title_id, @total_sales)
END
FETCH NEXT FROM cur_sales INTO @title_id, @qty
END
CLOSE cur_sales
DEALLOCATE cur_sales
OPEN cur_authors
WHILE @@FETCH_STATUS = 0
BEGIN
IF EXISTS (SELECT * FROM #authors_summary WHERE pub_id = @pub_id)
BEGIN
UPDATE #authors_summary SET num_authors = num_authors + 1
WHERE pub_id = @pub_id
END
ELSE
BEGIN
INSERT INTO #authors_summary (pub_id, num_authors) VALUES
(@pub_id, 1)
END
FETCH NEXT FROM cur_authors INTO @pub_id, @au_id
END
CLOSE cur_authors
DEALLOCATE cur_authors