
12/08/2012, 17:54
|
| | Fecha de Ingreso: agosto-2012
Mensajes: 13
Antigüedad: 12 años, 6 meses Puntos: 0 | |
Respuesta: Crear Trigger para Generar Numero de Serie en SQL Server 2008 Express Muchas Gracias Libras por toda la Ayuda que me has Ofrecido Tu código me Funciona a la Perfección.
Me Gustaria Saber como podria agregar una condición que valide si el Campo Ultimo_Utilizado esta Vacio o sea Null que le asigne a la Factura el Ncf que este en el Campo Número Inicial de lo contrario que incremente el Ultimo_Utilizado que es lo que hace el siguiente trigger:
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)
Saludos,
hondaalberto |