Ayuda con trigger de integridad

22/03/2005 - 19:27 por Jose | Informe spam
Tengo una tabla items(item,tipo,etc.), tengo otra tabla movs
(item,fecha,cantidad,etc.) . Quiero hacer un trigger (si no hay otra forma
claro) para que los registros que se inserten a la tabla movs sean
necesariamente de tipo 1 o 2. (movs.item es una clave foranea que apunta a
items.item.) y si se trata de crear un item que sea digamos del tipo 3 que
no me lo acepte.


Gracias por la ayuda, queridos amigos.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
22/03/2005 - 19:43 | Informe spam
Trata:

create trigger tr_movs_ins on movs
for insert
as
if exists(select * from inserted as a inner join items as b on a.item =
b.item and (b.tipo != 1 and b.tipo != 2))
begin
rollback transaction
raiserror('No se puede crear movimientos para items cuyo tipo no es 1 o
2.', 16, 1)
return
end
go


create trigger tr_movs_io_ins on movs
instead of insert
as
if exists(select * from inserted as a inner join items as b on a.item =
b.item and (b.tipo != 1 and b.tipo != 2))
begin
rollback transaction
raiserror('No se puede crear movimientos para items cuyo tipo no es 1 o
2.', 16, 1)
return
end

insert into movs (item, fecha, cantidad, ...)
select item, fecha, cantidad, ...
from inserted

if @@error != 0
begin
rollback transaction
raiserror('Error insertando en la tabla [movs] desde el trigger
[tr_movs_io_ins ].', 16, 1)
return
end
go


AMB

"Jose" wrote:

Tengo una tabla items(item,tipo,etc.), tengo otra tabla movs
(item,fecha,cantidad,etc.) . Quiero hacer un trigger (si no hay otra forma
claro) para que los registros que se inserten a la tabla movs sean
necesariamente de tipo 1 o 2. (movs.item es una clave foranea que apunta a
items.item.) y si se trata de crear un item que sea digamos del tipo 3 que
no me lo acepte.


Gracias por la ayuda, queridos amigos.








Respuesta Responder a este mensaje
#2 Jose
22/03/2005 - 19:55 | Informe spam
Muchas gracias Alejandro por la gran ayuda!!!




"Alejandro Mesa" wrote in message
news:
Trata:

create trigger tr_movs_ins on movs
for insert
as
if exists(select * from inserted as a inner join items as b on a.item > b.item and (b.tipo != 1 and b.tipo != 2))
begin
rollback transaction
raiserror('No se puede crear movimientos para items cuyo tipo no es 1


o
2.', 16, 1)
return
end
go


create trigger tr_movs_io_ins on movs
instead of insert
as
if exists(select * from inserted as a inner join items as b on a.item > b.item and (b.tipo != 1 and b.tipo != 2))
begin
rollback transaction
raiserror('No se puede crear movimientos para items cuyo tipo no es 1


o
2.', 16, 1)
return
end

insert into movs (item, fecha, cantidad, ...)
select item, fecha, cantidad, ...
from inserted

if @@error != 0
begin
rollback transaction
raiserror('Error insertando en la tabla [movs] desde el trigger
[tr_movs_io_ins ].', 16, 1)
return
end
go


AMB

"Jose" wrote:

> Tengo una tabla items(item,tipo,etc.), tengo otra tabla movs
> (item,fecha,cantidad,etc.) . Quiero hacer un trigger (si no hay otra


forma
> claro) para que los registros que se inserten a la tabla movs sean
> necesariamente de tipo 1 o 2. (movs.item es una clave foranea que


apunta a
> items.item.) y si se trata de crear un item que sea digamos del tipo 3


que
> no me lo acepte.
>
>
> Gracias por la ayuda, queridos amigos.
>
>
>
>
>
>
>
>
Respuesta Responder a este mensaje
#3 Alejandro Mesa
22/03/2005 - 19:59 | Informe spam
No hay de que.

AMB

"Jose" wrote:


Muchas gracias Alejandro por la gran ayuda!!!




"Alejandro Mesa" wrote in message
news:
> Trata:
>
> create trigger tr_movs_ins on movs
> for insert
> as
> if exists(select * from inserted as a inner join items as b on a.item > > b.item and (b.tipo != 1 and b.tipo != 2))
> begin
> rollback transaction
> raiserror('No se puede crear movimientos para items cuyo tipo no es 1
o
> 2.', 16, 1)
> return
> end
> go
>
>
> create trigger tr_movs_io_ins on movs
> instead of insert
> as
> if exists(select * from inserted as a inner join items as b on a.item > > b.item and (b.tipo != 1 and b.tipo != 2))
> begin
> rollback transaction
> raiserror('No se puede crear movimientos para items cuyo tipo no es 1
o
> 2.', 16, 1)
> return
> end
>
> insert into movs (item, fecha, cantidad, ...)
> select item, fecha, cantidad, ...
> from inserted
>
> if @@error != 0
> begin
> rollback transaction
> raiserror('Error insertando en la tabla [movs] desde el trigger
> [tr_movs_io_ins ].', 16, 1)
> return
> end
> go
>
>
> AMB
>
> "Jose" wrote:
>
> > Tengo una tabla items(item,tipo,etc.), tengo otra tabla movs
> > (item,fecha,cantidad,etc.) . Quiero hacer un trigger (si no hay otra
forma
> > claro) para que los registros que se inserten a la tabla movs sean
> > necesariamente de tipo 1 o 2. (movs.item es una clave foranea que
apunta a
> > items.item.) y si se trata de crear un item que sea digamos del tipo 3
que
> > no me lo acepte.
> >
> >
> > Gracias por la ayuda, queridos amigos.
> >
> >
> >
> >
> >
> >
> >
> >



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