¿Como generar un codigo alfanumerico para poder insertar en nuestra tabla?
Primero vamos con la estructura de la tabla de ejemplo
Primero vamos con la estructura de la tabla de ejemplo
Nota: Como pueden apreciar el campo CodAlumno es del tipo Char de longitud 4, este campo almacenara el codigo con el siguiente formato:
Primera Letra del nombre +000
Por ejemplo L001
Declaramos nuestras variables o parametros de entrada que en este caso son el nombre y el apellido
la Variable Autoincremento sera la que contendra el valor maximo del codigo, para eso hacemos uso de la funcion max , pero el codigo es del tipo string, por eso realizamos una extraccion y su respectiva conversion de dato al tipo numerico.
luego simplemente incrementamos en uno con Set @Autoincremento=@Autoincremento + 1
la variable @numero contendra la parte del codigo numero, pero sera del tipo char.
Con la funcion extraemos los tres ultimos caracteres para obtener un numero con formato 001.
Probando el procedimiento Almacenado
SOLO UNA CRITICA CONSTRUCTIVA ES PRIMORO CREATE Y DESPUES ALTER PARA LOS QUE NO SABEN
ResponderEliminarcreate procedure sp_insertar @nom varchar(30),@ape varchar (30)
as
begin
declare @autoincremento int, @numero varchar (3), @codigo char (4)
set @codigo=SUBSTRING(@nom,1,1)
select @autoincremento=ISNULL(max(convert(int, right(CodAlumno,3))),0) from Ejemplo
set @autoincremento=@autoincremento + 1
SELECT @numero=RIGHT('00'+ CONVERT(VARCHAR, @autoincremento),3)
set @codigo=RTRIM(@codigo) + RTRIM(@numero)
print 'codigo: '+ @codigo
insert into Ejemplo values (@codigo, @nom, @ape)
end
Y DESPUES
alter procedure sp_insertar @nom varchar(30),@ape varchar (30)
as
begin
declare @autoincremento int, @numero varchar (3), @codigo char (4)
set @codigo=SUBSTRING(@nom,1,1)
select @autoincremento=ISNULL(max(convert(int, right(CodAlumno,3))),0) from Ejemplo
set @autoincremento=@autoincremento + 1
SELECT @numero=RIGHT('00'+ CONVERT(VARCHAR, @autoincremento),3)
set @codigo=RTRIM(@codigo) + RTRIM(@numero)
print 'codigo: '+ @codigo
insert into Ejemplo values (@codigo, @nom, @ape)
end
y el nombre de la tabla EJEMPLO
EliminarEs cierto, tome la imagen equivocada, luego cambiare
Eliminar