Академический Документы
Профессиональный Документы
Культура Документы
Laboratorio (triggers)
1.- Escribir un script creatrgpublishersyXY.sql que pueda crear un trigger de
nombre trgpublishersXY que ejecute actualización en cascada. Cuando se
realice una actualización en la tabla publishers se debe realizar la
actualización en cascada en la tabla titles. Dicho trigger debe realizar lo
siguiente:
a) Declare una variable de tipo int llamada @rows y dos variables char(6) de
nombre @old_id y @new_id.
b) Guarde el valor de @@rowcount
c) Verifique si más de un registro ha sido actualizado, se der asi, mande un
mensaje de error especificando que solo se puede actualizar una editorial
(Publisher) a un tiempo, con un número de error 40200.
d) Asigne los identificadores viejos y nuevos a @old_id y a @new_id y
actualice la tabla de titles usando estos valores según corresponda.
e) Despliegue un mensaje identificando el nombre de la editorial (Publisher),
el old_id, el new_id. Por ejemplo, “New Age Books(0736) ha sido actualizado
a 0777”
2.- Crear el trigger trgpublishersXY ejecutando el script anterior con isql
Isql –Ustudent –Psybase -Dstudentdb -SDIPLOXY –i creatrgpublishersXY.sql
Se modifican solo los registros que tenían el pub_id = 0736 a pub_id = 0777 en ambas
tablas
5.- Ejecución de un trigger sobre titles que force una regla de negocio
compleja.
a) En su base de datos borre titles y vuelva a crearla a partir de la tabla
pubs2..titles
drop table titles
go
select title_id, title, type, pub_id
into titles
from pubs2..titles
go
No permite insertar ya que el tipo es psychology y el id debe iniciar con 'PS’ y en este caso
empieza con BU
No permite insertar ya que el tipo es psychology y el id debe iniciar con 'PS’ y en este caso
empieza con BU