Hola a todos tengo un problema de sintaxis o algo asi en el siguiente trigger y no se resolverlo.Haber si me ayudais.
Código HTML:
CREATE TRIGGER dbo.TriggerPedidoAutomatico
ON dbo.ProveedorSubFamilia
AFTER UPDATE
AS
DECLARE
@IdSubFamiliaModificada int,
@StockActualCajas int,
@StockActualUnidades int,
@IdTipoPedidoAutomatico int,
@IdProveedor int,
@IdPedido int,
@CantidadCajas int,
@CantidadUnidades int,
@TipoLote char(10)
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
SELECT @IdSubFamiliaModificada = IdSubFamilia, @StockActualCajas = @StockActualCajas,
@StockActualUnidades = @StockActualUnidades
FROM updated u WHERE (StockActualCajas < StockMinimoCajas OR
StockActualUnidades < StockMinimoUnidades);
SELECT @TipoLote = TipoLote FROM dbo.SubFamilia
WHERE IdSubFamilia = @IdSubFamiliaModificada;
SELECT @IdTipoPedidoAutomatico = IdTipoPedidoAutomatico, @CantidadCajas = CantidadCajas,
@CantidadUnidades = CantidadUnidades
FROM dbo.TipoPedidoAutomatico WHERE Activado = True;
IF @TipoLote = 'UNIDADES'
BEGIN
SET @CantidadCajas = 0;
END
ELSE
BEGIN
SET @CantidadUnidades = 0;
END
IF @TipoPedidoAutomatico = 1
BEGIN
EXEC dbo.ObtenerProveedorQueMasSuministraSubFamilia
@IdProveedor,
@IdSubFamilia = @IdSubFamiliaModificada;
SET @IdProveedorPedido = @IdProveedor;
EXEC dbo.AltaPedidoAutomatico
@IdPedido,
@IdProveedor,
@DNIEmpleado = 'AUTOMATIC',
@FechaPedido = getdate(),
@Pendiente = True;
EXEC dbo.AltaLineaPedidoAutomatico
@IdSubFamilia,
@IdPedido,
@CantidadCajas,
@CantidadUnidades,
@Pendiente = True;
END
IF @TipoPedidoAutomatico = 2
BEGIN
EXEC dbo.ObtenerProveedorQueMasBaratoSuministraSubFamilia
@IdProveedor,
@IdSubFamilia = @IdSubFamiliaModificada;
SET @IdProveedorPedido = @IdProveedor;
EXEC dbo.AltaPedidoAutomatico
@IdPedido,
@IdProveedor,
@DNIEmpleado = 'AUTOMATIC',
@FechaPedido = getdate(),
@Pendiente = True;
EXEC dbo.AltaLineaPedidoAutomatico
@IdSubFamilia,
@IdPedido,
@CantidadCajas,
@CantidadUnidades,
@Pendiente = True;
END
END
GO