Autogenerar un Código Ayuda

22/12/2005 - 16:48 por Matías | Informe spam
tengo una tabla en el cual la llave es de tipo char(3). Esta llave debo
ingresarla en forma manual, ahora mi idea es hacer un SP en el cual me
devuelva la primera disponible para utilizar, cosa de no preocuparme ahora
de estar ingresando las llaves y tener conflictos con existentes. Ya no se
puede modificar nada en la estructura de la tabla.

Gracias de Antemano y felices fiestas de fin de año

Preguntas similare

Leer las respuestas

#1 Maxi
22/12/2005 - 16:59 | Informe spam
Hola, no te entiendo bien. Podrias explicar un poco mejor la cosa y con
ejemplos de ser posible


Salu2
Maxi [MVP SQL SERVER]


"Matías" escribió en el mensaje
news:
tengo una tabla en el cual la llave es de tipo char(3). Esta llave debo
ingresarla en forma manual, ahora mi idea es hacer un SP en el cual me
devuelva la primera disponible para utilizar, cosa de no preocuparme ahora
de estar ingresando las llaves y tener conflictos con existentes. Ya no se
puede modificar nada en la estructura de la tabla.

Gracias de Antemano y felices fiestas de fin de año

Respuesta Responder a este mensaje
#2 Matías
22/12/2005 - 17:34 | Informe spam
Ejemplo:

La tabla tiene un campo código:

Datos Existentes por ejemplo en la BD
Codigo Descripcion
AAA Casa
AAB Auto
AAZ Ventana

Ahora quiero una función que logicamente me deviera devolver el AAC, pq es
el primero que no se está utilizando.

Gracias



"Maxi" escribió en el mensaje
news:%23$
Hola, no te entiendo bien. Podrias explicar un poco mejor la cosa y con
ejemplos de ser posible


Salu2
Maxi [MVP SQL SERVER]


"Matías" escribió en el mensaje
news:
tengo una tabla en el cual la llave es de tipo char(3). Esta llave debo
ingresarla en forma manual, ahora mi idea es hacer un SP en el cual me
devuelva la primera disponible para utilizar, cosa de no preocuparme
ahora de estar ingresando las llaves y tener conflictos con existentes.
Ya no se puede modificar nada en la estructura de la tabla.

Gracias de Antemano y felices fiestas de fin de año





Respuesta Responder a este mensaje
#3 Guillermo Roldan
22/12/2005 - 19:01 | Informe spam
Parece que vas a necesitar un cursor sobre una select del campo codigo.

"Matías" wrote:

Ejemplo:

La tabla tiene un campo código:

Datos Existentes por ejemplo en la BD
Codigo Descripcion
AAA Casa
AAB Auto
AAZ Ventana

Ahora quiero una función que logicamente me deviera devolver el AAC, pq es
el primero que no se está utilizando.

Gracias



"Maxi" escribió en el mensaje
news:%23$
> Hola, no te entiendo bien. Podrias explicar un poco mejor la cosa y con
> ejemplos de ser posible
>
>
> Salu2
> Maxi [MVP SQL SERVER]
>
>
> "Matías" escribió en el mensaje
> news:
>> tengo una tabla en el cual la llave es de tipo char(3). Esta llave debo
>> ingresarla en forma manual, ahora mi idea es hacer un SP en el cual me
>> devuelva la primera disponible para utilizar, cosa de no preocuparme
>> ahora de estar ingresando las llaves y tener conflictos con existentes.
>> Ya no se puede modificar nada en la estructura de la tabla.
>>
>> Gracias de Antemano y felices fiestas de fin de año
>>
>
>



Respuesta Responder a este mensaje
#4 Alejandro Mesa
22/12/2005 - 19:17 | Informe spam
Matías,

Ve si esto te sirve. La cantidad de claves son alrededor de 17000 (ve la
cantidad de filas en t3), asi que si insertas mas de esa cantidad tendras
problemas.

use northwind
go

create table t2(
Codigo char(3) not null primary key nonclustered,
Descripcion varchar(25) not null unique
)
go

insert into t2 values('AAA', 'Casa')
insert into t2 values('AAB', 'Auto')
insert into t2 values('AAZ', 'Ventana')
go

select identity(int, 0, 1) as c1, cast(' ' as char(1)) as c2
into t1
from (select top 26 * from master..sysobjects) as a
go

declare @c char(1)

set @c = 'A'

update t1
set c2 = char(ascii(@c) + c1)
go

create unique clustered index ix_u_c_t1_c2 on t1(c2 asc)
go

select
cast(a.c2 + b.c2 + c.c2 as char(3)) as c1
into
t3
from
t1 as a
cross join
t1 as b
cross join
t1 as c
go

create unique clustered index ix_u_c_t3_c1 on t3(c1 asc)
go

drop table t1
go

create function f1 ()
returns char(3)
as
begin
return(
select
min(t3.c1)
from
t3
left join
t2
on t3.c1 = t2.Codigo
where
t2.Codigo is null
)
end
go

insert into t2(Codigo, Descripcion) values(dbo.f1(), 'Computer')
insert into t2(Codigo, Descripcion) values(dbo.f1(), 'MS SQL 2000')
insert into t2(Codigo, Descripcion) values(dbo.f1(), 'MS SQL 2005')
go

select * from t2
order by Codigo
go

drop function f1
go

drop table t2, t3
go


AMB


"Matías" wrote:

Ejemplo:

La tabla tiene un campo código:

Datos Existentes por ejemplo en la BD
Codigo Descripcion
AAA Casa
AAB Auto
AAZ Ventana

Ahora quiero una función que logicamente me deviera devolver el AAC, pq es
el primero que no se está utilizando.

Gracias



"Maxi" escribió en el mensaje
news:%23$
> Hola, no te entiendo bien. Podrias explicar un poco mejor la cosa y con
> ejemplos de ser posible
>
>
> Salu2
> Maxi [MVP SQL SERVER]
>
>
> "Matías" escribió en el mensaje
> news:
>> tengo una tabla en el cual la llave es de tipo char(3). Esta llave debo
>> ingresarla en forma manual, ahora mi idea es hacer un SP en el cual me
>> devuelva la primera disponible para utilizar, cosa de no preocuparme
>> ahora de estar ingresando las llaves y tener conflictos con existentes.
>> Ya no se puede modificar nada en la estructura de la tabla.
>>
>> Gracias de Antemano y felices fiestas de fin de año
>>
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida