Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/08/2012, 15:25
hondaalberto38
 
Fecha de Ingreso: agosto-2012
Mensajes: 13
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Crear Trigger para Generar Numero de Serie en SQL Server 2008 Express

Muchas Gracias por Tu Respuesta y por el Tiempo que has dedicado para mi.


He aplicado el código que aparece mas abajo y me genera el nuevo Número de NCF (el tuyo tambien pero este me parecio mas sencillo de entender para mi, aunke no tendria ningun inconveniente en aplicar el tuyo si incluyera los puntos que aclaro mas abajo), pero me he dado cuenta de algunas cosas que no te especifique al Principio y es lo siguiente:

1) En la Tabla Números de serie hay un campo que se llama código el cual es la Clave primaria de la Tabla, y en la tabla de Facturas al momento de registrarse la factura de venta hay un campo llamado código tambien que contiene cual código de la Tabla Numeros de serie debe afectar el update de la Tabla Numeros de Serie, lo cual el trigger no esta tomando en cuenta y no se como ponerlo en el Where de la tabla Numero de Serie.

Ejemplo:

Campo Factura.Código Tiene el Valor "NCF" EN LA TABLA Numeros de Serie el Campo Código tiene varios codigos dentro de los Cuales esta "NCF" que es que deberia actualizar...Ahora como esta el Trigger me los afecta todos con el Nuevo numero generado.

2) ¿Existe alguna forma de que no tenga que especificarle el NCF (A010010010100000000) en el campo último utilizado sino que cuando este campo este vacio tome el que este en el campo numero inicial pero si esta lleno que tome el último utilizado para hacer el incremento? o recomiendas que sea asi mejor?.

3)¿Si utilizo este trigger no importa cuantos usuarios esten registrando facturas al mismo tiempo, le asignara un numero de Serie diferente a cada factura? Cierto o Falso? Controlar esto es la razón Fundamental por la que quiero utilizar un Trigger.

Muchas Gracias por Tu Apoyo, muy valioso Aporte y mil disculpas por hacer este tipo depreguntas, pero es que me estoy iniciando en el Mundo de la programación y manejo de base de datos.

Saludos,

Alberto


Este es el Código que tengo en la Base de Datos actualmente:


USE [Prueba]
GO
/****** Object: Trigger [dbo].[TI_Factura] Script Date: 08/11/2012 17:13:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[TI_Factura] ON [dbo].[Factura] FOR INSERT AS
DECLARE @Generado as Varchar(19)

SELECT @Generado =LEFT(Ultimo_Utilizado,11) +
RIGHT('00000000' + CAST(CAST(RIGHT(Ultimo_Utilizado,8) AS Int) + 1 AS Varchar(8)),8) FROM table_3

UPDATE Factura SET ncf = @Generado FROM inserted
WHERE Inserted.id = Factura.id

UPDATE table_3 Set Ultimo_Utilizado = @Generado