Hola a todos.
Antes de nada decir que soy algo novato en sql y estoy haciendo mis primeros
pinitos.
Tengo una bbdd en sql 2005
Tengo las siguientes tablas
T1 : Unidades de medida
UnidadMedida - k
T2: Unidades de medida producto
Producto - k
UnidadMedida - k
T3: Precios proveedor
Proveedor - k
Producto - k
UnidadMedida -k
Tengo una relacion T1-T2 por el campo unidad de medida. Update on cascada
Tengo una relacion T2-T3 por los campos producto y unidad de medida. Update
no acction porque no me deja sql por otras relaciones.
He creado el siguiente trigger en T2 para mantener la integridad referencial
CREATE TRIGGER [U_COMUnidadesMedidaProducto_ProductoUM]
ON [COMUnidadesMedidaProducto]
FOR UPDATE
AS
IF NOT UPDATE(Producto) AND NOT UPDATE(UnidadMedida)
RETURN
declare @actUM varchar(20), @antUM varchar(20)
SELECT @actUM = UnidadMedida FROM Inserted
SELECT @antUM = UnidadMedida FROM Deleted
declare @actProducto varchar(20), @antProducto varchar(20)
SELECT @actProducto = Producto FROM Inserted
SELECT @antProducto = Producto FROM Deleted
UPDATE PreciosProductosProveedor
SET Producto = @actProducto, UnidadMedida = @actUM
FROM Inserted
WHERE PreciosProductosProveedor.Producto = @antProducto AND
PreciosProductosProveedor.UnidadMedida = @antUM
El trigger me funciona sólo para el primer producto que se modifica en T2.
Alguien me podría ayudar y decirme porque solo funciona para el primer
registro que modifica y como podría hacer para que me funcionase para todos
los registros.
Gracias a todos de antemano.
Leer las respuestas