miércoles, 30 de octubre de 2019

Triggers

Tiempo: 6:00 pm a 9:00 pm

-Creación de los triggers para las tablas de beneficiarios y CO.

Empecé por investigar sobre qué eran los triggers y vi algunos ejemplos de estos en algunas páginas y videos. Luego analicé qué era lo que tenían que hacer exactamente mis triggers, por ejemplo el trigger para eliminar, no usa un DELETE ya que en esta tarea los borrados se implementan desactivando un campo, eso fue algo que me tuvo pensando hasta darme cuenta que ocupaba un UPDATE para el trigger de eliminar.
Establecido lo que tenía que hacer cree los triggers para la tabla beneficiarios y realicé algunas pruebas en las cuales tuve errores como que un UPDATE creaba 2 filas en la tabla de eventos, esto se solucionó agregando un if al trigger para actualizar que validara que el campo activo fuera igual a 1 de lo contrario no sería un trigger para actualizar si no para borrar.

Habiendo probado los triggers de beneficiarios cree los triggers de CO y empecé a experimentar con los XML lo cual no fue muy complicado ya que había evacuado las dudas con el profesor sobre este tema sin embargo, me topé con un problema que mantuvo bloqueado un rato: como creaba un XML con la información antes de actualizar y otro después de actualizar ya que yo solo conocía la instrucción "inserted", este bloqueo lo solucioné con la instrucción "deleted" que encontré en esta página: https://aprendiendosqlserver.blogspot.com/2013/09/programar-triggers-correctamente-que.html .
Al actulizar un beneficiario en la página web, efectivamente se creó el evento con los XML correspondientes. Luego agregue el código de los XML a los triggers de CO.

Fuentes:
https://aprendiendosqlserver.blogspot.com/2013/09/programar-triggers-correctamente-que.html
http://www.sqlservertutorial.net/sql-server-stored-procedures/sql-server-if-else/
https://www.manualsqlserver.com/?p=385
https://www.youtube.com/watch?v=FZLmXocmCLU