Problemilla con Triggers!!

23/02/2004 - 13:48 por ByLoCK | Informe spam
Hola Amigos,

Tengo un pequeño problemilla con los trigger que estoy realizando.
Estoy creando una serie de triggers en unas tablas que me interesa
controlar. El caso es que para cada registro que se toca (ya sea nuevo,
modificado o borrado) inserto su id, un id de tabla y la echa en una
tabla de control para saber los cambios que se han efectuado desde una
fecha.

El problema me viene cuando estoy borrando registros de una de esas
tablas y salta el trigger (esta tabla esta relacionada con otras y
ejecuta borrados en cascada)

CREATE TRIGGER tBoletinPublicaciones_Del ON [dbo].[tBoletinPublicaciones]
FOR DELETE
AS

declare @idRegistro int

select @idRegistro = id
from deleted

insert into tSincronizacionRegistros
(idTabla, idRegistro, Borrar)
values (7,@idRegistro,1)


Este trigger se repite en numerosas tablas
El SQLServer me devuelve un error diciendome que no puede insertar un
valor null en la tabla tSincronizacionRegistros como si no hubiera
extraido ningun id de la tabla deleted.
No se si es en la ejecucion del primer trigger o de alguno de los trigger
pertenecientes a tablas relacionadas que borran registros en cascada.

Alguien puede echarme una manita??

Gracias

ByLoCK

Preguntas similare

Leer las respuestas

#1 Miguel Egea
23/02/2004 - 14:46 | Informe spam
Solucionarias este problema (y otro que no comentas, pero que tiene),
cambiando el trigger, el problema es que inserted/deleted es una tabla y
puede tener o no registros y puede tambien tener muchos registros.

CREATE TRIGGER tBoletinPublicaciones_Del ON [dbo].[tBoletinPublicaciones]
FOR DELETE
AS


insert into tSincronizacionRegistros
(idTabla, idRegistro, Borrar)
select 7,idRegistro,1 from deleted



Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores

"ByLoCK" escribió en el mensaje
news:
Mostrar la cita
#2 Maximiliano D. A.
23/02/2004 - 14:47 | Informe spam
Hola!! bueno aca ese trigger esta pensado solo para trabajar con un Registro
lo cual no es lo ideal,

porque no cambias esto en el trigger a ver como te funciona si?

CREATE TRIGGER tBoletinPublicaciones_Del ON [dbo].[tBoletinPublicaciones]
FOR DELETE
AS


insert into tSincronizacionRegistros
(idTabla, idRegistro, Borrar)
select 7,deleted.id ,1 from deleted




Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"ByLoCK" escribió en el mensaje
news:
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.581 / Virus Database: 368 - Release Date: 09/02/2004
#3 Maximiliano D. A.
23/02/2004 - 14:56 | Informe spam
Hola Estimado Miguel!! 2 respuetas iguales para la misma pregunta :-D, tan
malas no deben ser no?


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Miguel Egea" escribió en el mensaje
news:%23%23CRPNh%
Mostrar la cita
[dbo].[tBoletinPublicaciones]
Mostrar la cita
trigger
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.581 / Virus Database: 368 - Release Date: 09/02/2004
#4 Miguel Egea
23/02/2004 - 17:08 | Informe spam
jeje :-) te gané por 1 minuto

Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> escribió en el
mensaje news:OwqB3Uh#
Mostrar la cita
y
Mostrar la cita
[dbo].[tBoletinPublicaciones]
Mostrar la cita
nuevo,
Mostrar la cita
#5 Maximiliano D. A.
23/02/2004 - 17:12 | Informe spam
:( jejeje


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Miguel Egea" escribió en el mensaje
news:uuVxWci%
Mostrar la cita
tan
Mostrar la cita
una
Mostrar la cita
un
Mostrar la cita
cascada.
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.581 / Virus Database: 368 - Release Date: 09/02/2004
Ads by Google
Search Busqueda sugerida