Existen Muchas las formas de crear un autogenerado.
YO por ejemplo, uso una tabla, en la cual me sirve como metadata de mis demas tablas... (quiero decir, que tengo una tabla donde indico el nombre de la tabla, entre otros campos, y 3 campos: PREFIJO, SUFIJO, AUTONUMERO) de las cuales PREFIJO y SUFIJO oueden ser vacios.
entonces... para mi tabla que se llame MOVIMIENTOS: el registro dentro de mi tabla seria
Cod. Descripcion Estado Prefijo Sufijo Autonumero
TBL0001 MOVIMIENTOS A E null 0
Entonces al momento de programar. concateno los campos PREFIJO + STRING(AUTONUMERO + 1,'000') + SUFIJO
el string(1,'000') devuelve 001,
string(46,'000') devuelve 046,
del ejemplo devolveria E001
Ahora el truco esta en este codigo debe generarse justo antes de guardar el registro nuevo.
Si lo que ha guardado a sido satisfactorio osea
si dw_x.update()=1 entonces debo actualizar el campo AUTONUMERO del registro con codigo TBL0001.
Cod. Descripcion Estado Prefijo Sufijo Autonumero
TBL0001 MOVIMIENTOS A E null 1
La siguiente vez que insertes uno nuevo devolvera E002 y asi sucesivamente...
PERO SI AL MOMENTO DE GUARDAR OCURRIO UN ERROR
no debe actualizarce AUTONUMERO, ya que no se inserto registro.
Salu2