UPDATE DENTRO DE UN TRIGGER QUE BORRA

20/07/2004 - 15:03 por Jomaweb | Informe spam
Se supone que este disparador se ejecuta al borrar un contrato de una base
de datos de contratos.
Lo que debe hacer : actualizar el registro con la fecha de la baja y
seguidamente meter los datos en una tabla de seguridad por si hay que
recuperarlo.

Lo que hace: elimina el contrato bien pero no actualiza la fecha de baja

¿no puedo actualizar fecha desde dentro del trigger desde la tabla deleted?


Gracias

CREATE TRIGGER [BORRADOR] ON dbo.CONTRATOS
FOR DELETE
AS
BEGIN
declare @ide integer
select @ide=ide_contrato from deleted
update contratos set fecha_baja=getdate() where idcon=@ide
INSERT INTO [dbo].[BORRADOS] select * from deleted
END

Preguntas similare

Leer las respuestas

#1 Antonio J. Ramos
20/07/2004 - 15:09 | Informe spam
Quizá es q no te entiena bien, pero si estas borrando un registro de la
tabla de contratos,
¿como vas a modificar el registro que acabas de borrar???

saludos...
Respuesta Responder a este mensaje
#2 Liliana Sorrentino
20/07/2004 - 15:31 | Informe spam
Hola José,
Supongo que estás hablando de una baja física porque sino no se dispararía
el trigger.
Entonces ya no tenés información para actualizar la fecha de baja, pero ya
que estás llevando un control de borrados, podrías poner la fecha en esa
tabla:

SELECT *, getdate() FROM deleted
Aunque yo prefiero llevar un mayor control en mis auditorías: usuario,
máquina, aplicación, etc.

Saludos... Liliana.

"Jomaweb" escribió en el mensaje
news:
Se supone que este disparador se ejecuta al borrar un contrato de una base
de datos de contratos.
Lo que debe hacer : actualizar el registro con la fecha de la baja y
seguidamente meter los datos en una tabla de seguridad por si hay que
recuperarlo.

Lo que hace: elimina el contrato bien pero no actualiza la fecha de baja

¿no puedo actualizar fecha desde dentro del trigger desde la tabla


deleted?


Gracias

CREATE TRIGGER [BORRADOR] ON dbo.CONTRATOS
FOR DELETE
AS
BEGIN
declare @ide integer
select @ide=ide_contrato from deleted
update contratos set fecha_baja=getdate() where idcon=@ide
INSERT INTO [dbo].[BORRADOS] select * from deleted
END


Respuesta Responder a este mensaje
#3 joselitux
20/07/2004 - 20:19 | Informe spam
¿como vas a modificar el registro que acabas de borrar???



el truco era actualizar primero la tabla "deleted" con la fecha de baja y
después hacer un insert en otra tabla de seguridad del registro DELETED.

Esa es la idea. Actualizar la tabla temporal, no la eliminada y guardar el
registro en otra. Pero hace bien todo menos el Update de fecha.
Respuesta Responder a este mensaje
#4 Liliana Sorrentino
20/07/2004 - 20:28 | Informe spam
José,
La tabla DELETED es del sistema, no podrás trabajar sobre ella más que para
consultarla.
Si la idea entonces es guardar esa fecha en la tabla de Borrados, mirá mi
respuesta anterior.
Liliana.
"joselitux" escribió en el mensaje
news:

> ¿como vas a modificar el registro que acabas de borrar???

el truco era actualizar primero la tabla "deleted" con la fecha de baja y
después hacer un insert en otra tabla de seguridad del registro DELETED.

Esa es la idea. Actualizar la tabla temporal, no la eliminada y guardar el
registro en otra. Pero hace bien todo menos el Update de fecha.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida