Do while dentro de un Stored Procedure?

17/01/2006 - 16:46 por bonsweet | Informe spam
Hola!

Pues aqui estoy en mi cumpleaños trabaje y trabaje =D... jajaja.. no
encontraba ni como decir que cumplo años, jajaja...

Bueno, pues hoy me tope con una duda...
Se puede hacer un do while dentro de un Stored Procedure en SQL?
Alguien lo ha hecho?,... no lo he intentado, la verdad es que no se si
cambie en algo la forma de hacer un do while en un asp a hacerlo dentro de
un Stored, alguien tendra algun ejemplo?

Gracias!

Saludos!

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
18/01/2006 - 13:22 | Informe spam
Aunque lo puedes realizar con un cursor, no veo la necesidad de usarlo.
Ten en cuenta que todo gestor de base de datos relacional está optimizado
para trabajar con conjuntos de registros, mientras que un cursor está
pensado para tratar individualmente cada registro de ese conjunto. La
mayoría de las operaciones que se hacen con cursores se pueden realizar con
ellos de una forma muchísimo más eficiente

En el ejemplo que pones no veo la necesidad de usar cursores. ¿Qué te
impide realizar un JOIN (o los que hagan falta) de la tabla sobre la que
haces esa primera selección con la segunda tabla? Si nos indicas más
concretamente lo que quieres hacer seguro que te podremos ayudar mejor


Un saludo

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

"Esmeralda" escribió en el mensaje
news:
Muchas gracias!

Y que tal si tienes por ejemploi un Select como el siguiente:

Select * from menu

y te trae como resultado no se, pongamos que te trae por resultado 5
registros

y por cada registro quieres hacer otro select en donde tomes como
parametro uno de los campos de cada registro, por ejemplo MenuId.

Supongo que se usa el do while, pero como le haría?? esto l quiero hacer
porque ya intente desde un asp y se tarda mucho en ejecutarse pues tengo 3
do while uno dentro de otro. Por eso quisiera saber como puedo hacer esto
desde SQL.

Gracias!

Piolin Net wrote:

> Aqui tienes uno sencillito

> DECLARE @CONT INT
> SET @CONT = 1

> WHILE @CONT < 10
> BEGIN
> SET @CONT = @CONT + 1
> END

> Saludos

> "Esmeralda" escribió:

> > Hola!
> >
> > Pues aqui estoy en mi cumpleaà±os trabaje y trabaje =D... jajaja.. no
> > encontraba ni como decir que cumplo aà±os, jajaja...
> >
> > Bueno, pues hoy me tope con una duda...
> > Se puede hacer un do while dentro de un Stored Procedure en SQL?
> > Alguien lo ha hecho?,... no lo he intentado, la verdad es que no se si
> > cambie en algo la forma de hacer un do while en un asp a hacerlo


dentro de
> > un Stored, alguien tendra algun ejemplo?
> >
> > Gracias!
> >
> > Saludos!
> >
> >


Respuesta Responder a este mensaje
#2 Piolin Net
18/01/2006 - 17:08 | Informe spam
Es cierto que con las inner joins etc. se pueden relacionar las tablas

Me imagino que Esmeralda ya habra tenido esa cuestion en cuenta.

No siempre se pueden unir las tablas en una join cuando necesitas hacer
busqueda de datos parciales de una tabla a otra.

Muchas veces preguntamos cosas para desarrollar algo que hemos pensado. Lo
que no quiere decir que sea lo mas optimo. Normalmente cuando planteamos el
problema mas abiertamente para que nos den solunicones no las recibimos.

Lo del cursor no es mas que una respuesta a su inquietud.

Saludos.

"Carlos Sacristán" wrote:

Aunque lo puedes realizar con un cursor, no veo la necesidad de usarlo.
Ten en cuenta que todo gestor de base de datos relacional está optimizado
para trabajar con conjuntos de registros, mientras que un cursor está
pensado para tratar individualmente cada registro de ese conjunto. La
mayoría de las operaciones que se hacen con cursores se pueden realizar con
ellos de una forma muchísimo más eficiente

En el ejemplo que pones no veo la necesidad de usar cursores. ¿Qué te
impide realizar un JOIN (o los que hagan falta) de la tabla sobre la que
haces esa primera selección con la segunda tabla? Si nos indicas más
concretamente lo que quieres hacer seguro que te podremos ayudar mejor


Un saludo

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

"Esmeralda" escribió en el mensaje
news:
> Muchas gracias!
>
> Y que tal si tienes por ejemploi un Select como el siguiente:
>
> Select * from menu
>
> y te trae como resultado no se, pongamos que te trae por resultado 5
> registros
>
> y por cada registro quieres hacer otro select en donde tomes como
> parametro uno de los campos de cada registro, por ejemplo MenuId.
>
> Supongo que se usa el do while, pero como le haría?? esto l quiero hacer
> porque ya intente desde un asp y se tarda mucho en ejecutarse pues tengo 3
> do while uno dentro de otro. Por eso quisiera saber como puedo hacer esto
> desde SQL.
>
> Gracias!
>
> Piolin Net wrote:
>
> > Aqui tienes uno sencillito
>
> > DECLARE @CONT INT
> > SET @CONT = 1
>
> > WHILE @CONT < 10
> > BEGIN
> > SET @CONT = @CONT + 1
> > END
>
> > Saludos
>
> > "Esmeralda" escribió:
>
> > > Hola!
> > >
> > > Pues aqui estoy en mi cumpleaà±os trabaje y trabaje =D... jajaja.. no
> > > encontraba ni como decir que cumplo aà±os, jajaja...
> > >
> > > Bueno, pues hoy me tope con una duda...
> > > Se puede hacer un do while dentro de un Stored Procedure en SQL?
> > > Alguien lo ha hecho?,... no lo he intentado, la verdad es que no se si
> > > cambie en algo la forma de hacer un do while en un asp a hacerlo
dentro de
> > > un Stored, alguien tendra algun ejemplo?
> > >
> > > Gracias!
> > >
> > > Saludos!
> > >
> > >
>
>



Respuesta Responder a este mensaje
#3 Carlos Sacristán
19/01/2006 - 08:25 | Informe spam
Piolin Net, no era una crítica a la respuesta que diste a Esmeralda, no
era esa mi intención. Lo que quería hacer notar es que en la mayoría de las
situaciones, el uso de un cursor no es necesario y que si planteara el
problema que tenía de una forma más concreta le podríamos ofrecer soluciones
más eficientes y adecuadas.

Si nuestra experiencia puede servir para mostrar no una solución, sino
la más óptima (dentro de nuestras posibilidades), ¿por qué no hacerlo? Eso
es lo que intentaba con mi respuesta.


Un saludo

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

"Piolin Net" escribió en el mensaje
news:
Es cierto que con las inner joins etc. se pueden relacionar las tablas

Me imagino que Esmeralda ya habra tenido esa cuestion en cuenta.

No siempre se pueden unir las tablas en una join cuando necesitas hacer
busqueda de datos parciales de una tabla a otra.

Muchas veces preguntamos cosas para desarrollar algo que hemos pensado. Lo
que no quiere decir que sea lo mas optimo. Normalmente cuando planteamos


el
problema mas abiertamente para que nos den solunicones no las recibimos.

Lo del cursor no es mas que una respuesta a su inquietud.

Saludos.

"Carlos Sacristán" wrote:

> Aunque lo puedes realizar con un cursor, no veo la necesidad de


usarlo.
> Ten en cuenta que todo gestor de base de datos relacional está


optimizado
> para trabajar con conjuntos de registros, mientras que un cursor está
> pensado para tratar individualmente cada registro de ese conjunto. La
> mayoría de las operaciones que se hacen con cursores se pueden realizar


con
> ellos de una forma muchísimo más eficiente
>
> En el ejemplo que pones no veo la necesidad de usar cursores. ¿Qué


te
> impide realizar un JOIN (o los que hagan falta) de la tabla sobre la que
> haces esa primera selección con la segunda tabla? Si nos indicas más
> concretamente lo que quieres hacer seguro que te podremos ayudar mejor
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "Esmeralda" escribió en el mensaje
> news:
> > Muchas gracias!
> >
> > Y que tal si tienes por ejemploi un Select como el siguiente:
> >
> > Select * from menu
> >
> > y te trae como resultado no se, pongamos que te trae por resultado 5
> > registros
> >
> > y por cada registro quieres hacer otro select en donde tomes como
> > parametro uno de los campos de cada registro, por ejemplo MenuId.
> >
> > Supongo que se usa el do while, pero como le haría?? esto l quiero


hacer
> > porque ya intente desde un asp y se tarda mucho en ejecutarse pues


tengo 3
> > do while uno dentro de otro. Por eso quisiera saber como puedo hacer


esto
> > desde SQL.
> >
> > Gracias!
> >
> > Piolin Net wrote:
> >
> > > Aqui tienes uno sencillito
> >
> > > DECLARE @CONT INT
> > > SET @CONT = 1
> >
> > > WHILE @CONT < 10
> > > BEGIN
> > > SET @CONT = @CONT + 1
> > > END
> >
> > > Saludos
> >
> > > "Esmeralda" escribió:
> >
> > > > Hola!
> > > >
> > > > Pues aqui estoy en mi cumpleaà±os trabaje y trabaje =D... jajaja..


no
> > > > encontraba ni como decir que cumplo aà±os, jajaja...
> > > >
> > > > Bueno, pues hoy me tope con una duda...
> > > > Se puede hacer un do while dentro de un Stored Procedure en SQL?
> > > > Alguien lo ha hecho?,... no lo he intentado, la verdad es que no


se si
> > > > cambie en algo la forma de hacer un do while en un asp a hacerlo
> dentro de
> > > > un Stored, alguien tendra algun ejemplo?
> > > >
> > > > Gracias!
> > > >
> > > > Saludos!
> > > >
> > > >
> >
> >
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida