Ver Mensaje Individual
  #7  
Antiguo 14-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Reputación: 14
hondaalberto Va por buen camino
Aqui esta el Trigger que necesitaba ojala le sirva a alguien más...

Este Triger lo que hace es Tomar un Número de Comprobante Fiscal (A010010010100000001) e incrementarlo en uno(1) cada vez que se ejecuta.

Ej: (A010010010100000001 + 1) = A010010010100000002


Código SQL [-]
USE [Prueba]
GO
/****** Object:  Trigger [dbo].[TI_Factura]    Script Date: 08/13/2012 19:26:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[TI_Factura] ON [dbo].[Factura] FOR INSERT AS
 
 
declare @valor varchar(19)
declare @cadena varchar(19)
declare @numero int
declare @x int
declare @serie varchar(19)
 
DECLARE @CADENA2 varchar(19)
DECLARE @Prueba varchar(19) 
 
SELECT  @valor=[Ultimo_Utilizado] FROM(
SELECT  [Ultimo_Utilizado],convert(int,substring([Ultimo_Utilizado],12,len([Ultimo_Utilizado])))  AS numero FROM Table_3 
        where  codigo=(Select Inserted.codigo from  Inserted where Inserted.codigo = table_3.codigo)
)AS t1 ORDER BY numero DESC
 
SELECT @cadena=substring(@valor,12,len(@valor))
SELECT @CADENA2 =substring(@valor,1,11)
SET @numero=convert(int,@cadena)
SET @numero=@numero+1
SET @x=1
SET @serie=''
 
while @x <=(8-(SELECT len(convert(varchar(10),@numero))))
begin
    SET @serie=@serie + '0'
    SET @x=@x+1
end
SET @serie=@serie + convert(varchar(10),@numero)
 
Set @serie=@CADENA2  + @serie
 
--SET @serie='A0100100101' + @serie Si CADENA2  Funciona borrar esta linea
--INSERT INTO #temp values (@serie)
 
UPDATE Factura SET NCF = @serie  FROM inserted
WHERE Inserted.id = Factura.id
 
Update Table_3 
Set Ultimo_Utilizado= @serie,
    Resultado = @CADENA2 
--where Codigo='NCFCR'
 
WHERE table_3.Codigo = (Select Inserted.codigo from Inserted where Inserted.codigo = table_3.codigo)

Última edición por Casimiro Notevi fecha: 15-08-2012 a las 09:51:26.
Responder Con Cita