Código:
Create Table Alumno( cod_alumno char(6) not null, nombre varchar(30) not null, apellido varchar(30) not null, f_nacimiento datetime not null, dni char(8) null, sexo char(1) not null, direccion varchar(80) null, telefono varchar(10) null, celular varchar(11) null, foto image null, constraint pk_alu primary key (cod_alumno) ) create Procedure sp_InsertarAlumno @cod_alumno char(6) output, @nombre varchar(30), @apellido varchar(30), @f_nacimiento datetime, @dni char(8), @sexo char(1), @direccion varchar(80), @telefono varchar(10), @celular varchar(11), @foto image as begin declare @num int if (select max(convert(int,substring(cod_alumno,3,6))) from Alumno) is not null begin select @num=max(convert(int,substring(cod_alumno,3,6))) from Alumno select @cod_alumno='AL'+replicate('0',4-dataLENGTH(convert(varchar,@num+1)))+convert(varchar,@num+1) end else --aqui solo entra la primera vez, para el primer alumno select @cod_alumno='AL0001' Insert Into Alumno(cod_alumno,nombre,apellido,f_nacimiento,dni,sexo,direccion,telefono,celular,foto) Values(@cod_alumno,@nombre,@apellido,@f_nacimiento,@dni,@sexo,@direccion,@telefono,@celular,@foto) end