Hola a todos.
A ver, estoy creando un procedimiento para insertar registros en una tabla.
La clave primaria es un varchar de 20 posiciones de las cuales las 4 primeras
por la izquierda es una abreviatura, y las 16 siguientes un número
consecutivo (1, 2, 3...) completado con ceros por la izquierda.
Sí existe un registro de la abreviatura no hay problema, crea el segundo.
Pero sí es el primero que crea al serie, intenta generar una clave nula y
claro, da error.
¿Me podeis decir que es lo que hago mal? os dejo aquí el código.
<pego>
CREATE procedure prueba(@Abreviatura varchar(4)) as
Declare @sContador varchar(20), @iContador integer
Select @sContador=substring(max(IdOperacionWS),5,16)
from LogTx
where IdOperacionWS like @Abreviatura +'%'
if @sContador IS NULL
select @sContador=@Abreviatura+ '0000000000000001'
Else
Select @iContadorÊST(@sContador as integer)+1
select @sContador=@Abreviatura+right('0000000000000000' +
cast(@iContador as varchar), 16)
INSERT INTO LogTx(IdOperacionWS) values(@sContador)
GO
</pego>
He de decir que probado de todo: el uso de IsNull, concatenar una cadena
vacía, etc...estoy francamente desesperado (¿será la hora? jeje)
Gracias
Salu2
..
José Mª Fueyo
Leer las respuestas