Triggers (disparadores)
Publicado por Vicente (3 intervenciones) el 10/10/2011 11:37:17
Hola:
Estoy pasando una base de datos MySql a MSSql 2005, y tengo un problema con los triggers. En MySQL tengo el siguiente trigger definido
DELIMITER $$
USE `formacion`$$
CREATE
DEFINER=`root`@`localhost`
TRIGGER `formacion`.`disp1`
BEFORE INSERT ON `formacion`.`matriculas`
FOR EACH ROW
BEGIN
call asignar_matricula(new.num_matricula);
set new.fecha = now();
END$$
la tabla matriculas tiene la siguiente definicion
id_matriculas - bigint(20)
id_alumno - bigint(20)
num_matricula - varchar(20)
fecha - date
Basicamente lo que hace el trigger es cuando se produce una inserción, el campo num_matricula va a otra tabla a buscarlo, y la fecha la actualiza con la fecha del sistema.
El MySql se puede acceder a los datos antes y despues de trigger con las variables new y old. En MSSql existe algo parecido o si alquien me puede dar una idea de como hacerlo. He leido que existen las variables INSERTED y UPDATED, pero no se como acceder a ellas antes de la inserción para actualizar los datos.
Gracias
Estoy pasando una base de datos MySql a MSSql 2005, y tengo un problema con los triggers. En MySQL tengo el siguiente trigger definido
DELIMITER $$
USE `formacion`$$
CREATE
DEFINER=`root`@`localhost`
TRIGGER `formacion`.`disp1`
BEFORE INSERT ON `formacion`.`matriculas`
FOR EACH ROW
BEGIN
call asignar_matricula(new.num_matricula);
set new.fecha = now();
END$$
la tabla matriculas tiene la siguiente definicion
id_matriculas - bigint(20)
id_alumno - bigint(20)
num_matricula - varchar(20)
fecha - date
Basicamente lo que hace el trigger es cuando se produce una inserción, el campo num_matricula va a otra tabla a buscarlo, y la fecha la actualiza con la fecha del sistema.
El MySql se puede acceder a los datos antes y despues de trigger con las variables new y old. En MSSql existe algo parecido o si alquien me puede dar una idea de como hacerlo. He leido que existen las variables INSERTED y UPDATED, pero no se como acceder a ellas antes de la inserción para actualizar los datos.
Gracias
Valora esta pregunta


0