Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

No funciona el trigger!!!

Estas en el tema de No funciona el trigger!!! en el foro de Bases de Datos General en Foros del Web. Hola a tod@s!!! Perdón por ser tan pesada, pero es que me estoy volviendo loca. Por fin he conseguido que funcionen los proc. almacenados. Ahora ...
  #1 (permalink)  
Antiguo 03/06/2004, 12:19
 
Fecha de Ingreso: mayo-2004
Ubicación: Valladolid (Spain)
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
Exclamación No funciona el trigger!!!

Hola a tod@s!!!
Perdón por ser tan pesada, pero es que me estoy volviendo loca. Por fin he conseguido que funcionen los proc. almacenados. Ahora el problema está en los triggers. Tengo dos tablas, Veterinarios y Vacas, donde la relación es 1 a varios y lo que quiero que haga el trigger es si modifican el dni (que es la pk) se modifiquen en cascada los registros relacionados en la tabla varios, pero no funciona. No da ningún error, pero no modifica en cascada (por supuesto no he puesto la restricción fk en la tabla varios al crearla con create table.
el código es:

CREATE TRIGGER TActualizarVeterinario
ON Veterinarios
FOR UPDATE
AS
if UPDATE (DniVet)
DECLARE @DniN CHAR(9), @DniV CHAR(9)
DECLARE CActualizarVeterinario CURSOR FOR SELECT i.DniVet,d.DniVet FROM INSERTED i, DELETED d WHERE i.DniVet=d.DniVet
OPEN CActualizarVeterinario
FETCH CActualizarVeterinario INTO @DniN, @DniV
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE Vacas
SET DniVetVac=@DniN
WHERE DniVetVac=@DniV
FETCH NEXT FROM CActualizarVeterinario INTO @DniN, @DniV
END
CLOSE CActualizarVeterinario
DEALLOCATE CActualizarVeterinario

Por favor, ayudaddddddmeeeeeeeee.
Gracias por adelantado.
Saludos
  #2 (permalink)  
Antiguo 03/06/2004, 13:43
 
Fecha de Ingreso: mayo-2004
Ubicación: Valladolid (Spain)
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
Ya lo he arreglado!!
Hay que quitar el where de la consulta del cursor (WHERE i.DniVet=d.DniVet
), porque es absurdo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:02.