Ayuda con esta logica

05/07/2006 - 03:41 por Tito | Informe spam
Hola amigos,

Necesito hacer un SP o funcion que

1) me genere un numero secuencial,
2) el numero generado me lo busque en otra tabla a ver si existe
3) si no existe me devuelva ese numero
4) si existe me incremente en 1 ese numero y vuelva al paso 2

Es facil de programar eso en un SP o debo hacerlo desde la aplicacion ?

Muchas gracias a todos

Preguntas similare

Leer las respuestas

#1 Pepe
05/07/2006 - 11:31 | Informe spam
Y porque no haces un Select Max(mi numero)+1 from MiTabla ??


"Tito" escribió en el mensaje
news:
Hola amigos,

Necesito hacer un SP o funcion que

1) me genere un numero secuencial,
2) el numero generado me lo busque en otra tabla a ver si existe
3) si no existe me devuelva ese numero
4) si existe me incremente en 1 ese numero y vuelva al paso 2

Es facil de programar eso en un SP o debo hacerlo desde la aplicacion ?

Muchas gracias a todos

Respuesta Responder a este mensaje
#2 Tito
05/07/2006 - 12:05 | Informe spam
Porque en la tabla donde hago la busqueda el campo existe con valores
aleatorios, no secuenciales e incluso pueden ser mayores el numero generado
en un momento dado.


"Pepe" escribió en el mensaje
news:
Y porque no haces un Select Max(mi numero)+1 from MiTabla ??


"Tito" escribió en el mensaje
news:
Hola amigos,

Necesito hacer un SP o funcion que

1) me genere un numero secuencial,
2) el numero generado me lo busque en otra tabla a ver si existe
3) si no existe me devuelva ese numero
4) si existe me incremente en 1 ese numero y vuelva al paso 2

Es facil de programar eso en un SP o debo hacerlo desde la aplicacion ?

Muchas gracias a todos





Respuesta Responder a este mensaje
#3 Carlos Sacristán
05/07/2006 - 12:19 | Informe spam
No entiendo... ¿qué problema hay en buscar el valor máximo del número en
la tabla en la que buscas (paso 2) y sumarle uno para tener un número
secuencial cada vez?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Tito" escribió en el mensaje
news:#
Porque en la tabla donde hago la busqueda el campo existe con valores
aleatorios, no secuenciales e incluso pueden ser mayores el numero


generado
en un momento dado.


"Pepe" escribió en el mensaje
news:
>Y porque no haces un Select Max(mi numero)+1 from MiTabla ??
>
>
> "Tito" escribió en el mensaje
> news:
>> Hola amigos,
>>
>> Necesito hacer un SP o funcion que
>>
>> 1) me genere un numero secuencial,
>> 2) el numero generado me lo busque en otra tabla a ver si existe
>> 3) si no existe me devuelva ese numero
>> 4) si existe me incremente en 1 ese numero y vuelva al paso 2
>>
>> Es facil de programar eso en un SP o debo hacerlo desde la aplicacion ?
>>
>> Muchas gracias a todos
>>
>
>


Respuesta Responder a este mensaje
#4 Pepe
05/07/2006 - 13:11 | Informe spam
Entonces entiendo que en el punto 1 te refieres a Numero secuencial y
aleatorio... claro que secuencial y aleatorio en la misma frase no tiene
mucho sentido..

intenta explicarnos un poco mas o pon un ejemplo a ver si logramos entender
lo que persiguies..



"Tito" escribió en el mensaje
news:%
Porque en la tabla donde hago la busqueda el campo existe con valores
aleatorios, no secuenciales e incluso pueden ser mayores el numero
generado en un momento dado.


"Pepe" escribió en el mensaje
news:
Y porque no haces un Select Max(mi numero)+1 from MiTabla ??


"Tito" escribió en el mensaje
news:
Hola amigos,

Necesito hacer un SP o funcion que

1) me genere un numero secuencial,
2) el numero generado me lo busque en otra tabla a ver si existe
3) si no existe me devuelva ese numero
4) si existe me incremente en 1 ese numero y vuelva al paso 2

Es facil de programar eso en un SP o debo hacerlo desde la aplicacion ?

Muchas gracias a todos









Respuesta Responder a este mensaje
#5 qwalgrande
05/07/2006 - 19:16 | Informe spam
Hola.

Necesitas una semilla para generar el identificador secuencial y almacenar
el número por el que va la secuencia. Vamos a suponer que eso lo guardas en
la tabla Contadores (dos campos, NombreTabla y Id) y que la tabla de la que
quieres obtener el Id se llama MiTabla. A ver, a mano alzada:

create proc MiNuevoNumero_MiTabla (@pNewId int output)
as

set nocount on

declare @ret int

if exists (select Id from Contadores where NombreTabla = @pNombreTabla)
update Contadores set @pNewId = Id = Id + 1 where NombreTabla = 'MiTabla'
else
begin
insert Contadores (NombreTabla, id) values ('MiTabla', 1)
select @pNewId = 1
end

if exists (select Id from MiTabla where Id = @pNewId)
exec @ret = MiNuevoNumero_MiTabla @pNewId output

return @ret


Tiene mucho margen de mejora, hay que meter control de transacciones,
control de errores, puedes hacer que sea genérico para cualquier tabla,... Y
tendrá errores de sintaxis incluso. Pero creo que la idea se transmite.
Espero que te sirva de guía.

Alberto López Grande (qwalgrande)


"Tito" escribió en el mensaje
news:
Hola amigos,

Necesito hacer un SP o funcion que

1) me genere un numero secuencial,
2) el numero generado me lo busque en otra tabla a ver si existe
3) si no existe me devuelva ese numero
4) si existe me incremente en 1 ese numero y vuelva al paso 2

Es facil de programar eso en un SP o debo hacerlo desde la aplicacion ?

Muchas gracias a todos

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida