Procedimiento Almacenado
Publicado por jair melendez (1 intervención) el 02/03/2004 16:26:48
creo un procedimiento almacenado (lo llamo desde visual basic) donde el primer campo se acumula automaticamente
EMP01
EMP02
EMP03
EMP04
.....
el problema radica en que si elimino un registro que no sea el ultimo me da un error al momento de querer crear
uno nuevo.
Como haria para poder utilizar este procedimiento en cuanto yo quiero declarar el primer campo como varchar
CREATE Procedure CrearEmpresa
@iempemp VarChar(50),
@iabrevemp VarChar(50),
@irucemp VarChar(11),
@idiremp VarChar(50),
@idistemp VarChar(50),
@itelemp VarChar(17),
@ifaxemp VarChar(17),
@igeremp VarChar(50),
@iactemp VarChar(50),
@iemailemp VarChar(50),
@iwebemp VarChar(50),
@ifechaemp datetime,
@iestemp VarChar(1)
As
Declare @Num Int,@icodemp Char(6)
Select @Num = Count(SIRHF_EMPRESAS_CODIGO) from empresas
Set @icodemp = 'EMP' + LTrim(Right('0' + Ltrim(Str(@Num + 1)),5))
Insert Into Empresas Values(@icodemp,@iempemp,@iabrevemp,@irucemp,@idiremp,@idistemp,@itelemp,@ifaxemp,@igeremp,@iactemp,@iemailemp,@iwebemp,@ifechaemp,@iestemp)
se agradece las respuestas
EMP01
EMP02
EMP03
EMP04
.....
el problema radica en que si elimino un registro que no sea el ultimo me da un error al momento de querer crear
uno nuevo.
Como haria para poder utilizar este procedimiento en cuanto yo quiero declarar el primer campo como varchar
CREATE Procedure CrearEmpresa
@iempemp VarChar(50),
@iabrevemp VarChar(50),
@irucemp VarChar(11),
@idiremp VarChar(50),
@idistemp VarChar(50),
@itelemp VarChar(17),
@ifaxemp VarChar(17),
@igeremp VarChar(50),
@iactemp VarChar(50),
@iemailemp VarChar(50),
@iwebemp VarChar(50),
@ifechaemp datetime,
@iestemp VarChar(1)
As
Declare @Num Int,@icodemp Char(6)
Select @Num = Count(SIRHF_EMPRESAS_CODIGO) from empresas
Set @icodemp = 'EMP' + LTrim(Right('0' + Ltrim(Str(@Num + 1)),5))
Insert Into Empresas Values(@icodemp,@iempemp,@iabrevemp,@irucemp,@idiremp,@idistemp,@itelemp,@ifaxemp,@igeremp,@iactemp,@iemailemp,@iwebemp,@ifechaemp,@iestemp)
se agradece las respuestas
Valora esta pregunta


0