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:
Mostrar la cita

Preguntas similares