Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/08/2012, 10:05
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Crear Trigger para Generar Numero de Serie en SQL Server 2008 Express

y que llevas de tu trigger? Tendrias que hacer el trigger after insert, despues tomar el ultimo valor de tu secuencia (A010010010100000050 en este caso sabes que los primeros 12 numeros son fijos asi que con un substring(cadena,12,len(cadena)) sacas la secuenci), despues convertir la secuencia a Int para poder incrementarla(te quedaria el 50) despues de eso tomar la longitud del numero y al total de 0 restarle ese numero ya despues de ahi es nada mas concatenar los 0's con el numero y ponerlo en tu secuencia final :)....... ahora te toca a ti hacerlo en sql :)

bueno ya que jajaja me gano e hice el query


Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. serie VARCHAR(MAX)
  4. )
  5.  
  6. INSERT INTO #temp VALUES ('A010010010100000000')
  7.  
  8. DECLARE @valor VARCHAR(MAX)
  9. DECLARE @cadena VARCHAR(MAX)
  10. DECLARE @numero INT
  11. DECLARE @x INT
  12. DECLARE @serie VARCHAR(MAX)
  13.  
  14. SELECT top 1 @valor=serie FROM(
  15. SELECT serie,CONVERT(INT,SUBSTRING(serie,12,len(serie))) AS numero FROM #temp
  16. )AS t1 ORDER BY numero DESC
  17.  
  18. SELECT @cadena=SUBSTRING(@valor,12,len(@valor))
  19. SET @numero=CONVERT(INT,@cadena)
  20. SET @numero=@numero+1
  21. SET @x=1
  22. SET @serie=''
  23. while @x <=(8-(SELECT len(CONVERT(VARCHAR(10),@numero))))
  24. BEGIN
  25.     SET @serie=@serie + '0'
  26.     SET @x=@x+1
  27. END
  28. SET @serie=@serie + CONVERT(VARCHAR(10),@numero)
  29. SET @serie='A0100100101' + @serie
  30. INSERT INTO #temp VALUES (@serie)

ahora nada mas tendrias que usar el trigger y despues de un insert sacar el valor (usando tus tablas claro esta) y pegarle la secuencia :)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 10/08/2012 a las 10:18