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
 

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:
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 similares