Re: Trigger

23/02/2004 - 21:24 por Rodriguez | Informe spam
He creado algo como esto pero no me funciona

create trigger Item
on detallederequisicion
for delete

as
update detallederequisicion
set detallederequisicion.Item = detallederequisicion.Item-1
from detallederequisicion
detallederequisicion inner join deleted
on detallederequisicion.requisicionID = Deleted.requisicionID
where Deleted.item < detallederequisicion.item



"Julio" <espaillat@hotmail.com> wrote in message news:...


"Julio" <espaillat@hotmail.com> wrote in message
news:OIKogvi%23DHA.3820@tk2msftngp13.phx.gbl...
> Hola Grupo
>
> Como puedo crear un trigger para la siguiente necesidad:
>
> Tengo una requisicion en la cual se insertan articulos y en ella tengo


un

> campo llamado Item
> que se va incrementando cuando se agrega un nuevo item (1,2,3,4)
>
> El problema esta en que cuando borran un detalle de la requisicion yo
> quisiera que los numeros de los item que estan debajo de ese de
descrementen
> en uno.
>
> Ejemplo
>
> Requisicion Original
> Requisicion_ID Item Detalle
> 1 1 Carro
> 1 2 Ropa
> 1 3 Cama
> 1 4 Puerta
>
> Resultado cuando Borren el Item 2
>
> Requisicion_ID Item Detalle
> 1 1 Carro
> 1 2 Cama
> 1 3 Puerta
>
> Gracias de antes manos
>
>
>


 

Leer las respuestas

#1 Javier Loria
23/02/2004 - 22:18 | Informe spam
Hola Julio:
Esto setencia es medio LOCO!!!, pero prueba a ver:
UPDATE DetalleRequisicion
SET DetalleRequisicion.Item=Nuevo.NuevoItem
FROM DetalleRequisicion
JOIN (SELECT DISTINCT RequisicionID
FROM Deleted) AS Borrados
ON DetalleRequisicion.RequisicionID=Borrados.RequisicionID
JOIN (SELECT COUNT(*) AS NuevoItem
, D1.Item
, D1.RequisicionID
FROM DetalleRequisicion AS D1
JOIN DetalleRequisicion AS D2
ON D1.RequisionIDÒ.RequisicionID
AND D1.Item>Ò.Item
GROUP BY D1.Item) AS Nuevo
ON DetalleRequisicion.RequisicionID=Nuevo.RequisicionID
AND DetalleRequisicion.Item=Nuevo.Item
AND Nuevo.RequisicionID=Deleted.RequisicionID
Esta sin probar y podria tener problemas de sintaxis, pero debe hacer el
trabajo adecuado.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Rodriguez escribio:
He creado algo como esto pero no me funciona

create trigger Item
on detallederequisicion
for delete

as
update detallederequisicion
set detallederequisicion.Item = detallederequisicion.Item-1
from detallederequisicion
detallederequisicion inner join deleted
on detallederequisicion.requisicionID = Deleted.requisicionID
where Deleted.item < detallederequisicion.item



"Julio" wrote in message news:...

"Julio" wrote in message
news:OIKogvi%
Hola Grupo

Como puedo crear un trigger para la siguiente necesidad:

Tengo una requisicion en la cual se insertan articulos y en ella
tengo un campo llamado Item
que se va incrementando cuando se agrega un nuevo item (1,2,3,4)

El problema esta en que cuando borran un detalle de la requisicion
yo quisiera que los numeros de los item que estan debajo de ese de
descrementen en uno.

Ejemplo

Requisicion Original
Requisicion_ID Item Detalle
1 1 Carro
1 2 Ropa
1 3 Cama
1 4 Puerta

Resultado cuando Borren el Item 2

Requisicion_ID Item Detalle
1 1 Carro
1 2 Cama
1 3 Puerta

Gracias de antes manos

Preguntas similares