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:
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
Respuesta Responder a este mensaje
#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:
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





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
Respuesta Responder a este mensaje
#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%
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







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
Respuesta Responder a este mensaje
#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#
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%
> 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
>
>



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


Respuesta Responder a este mensaje
#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%
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#
> 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%
> > 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
> >
> >
>
>
>
> 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
>
>







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
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida