Ejecutar varias veces un sp

23/05/2006 - 14:40 por Matías | Informe spam
Hola a todos, como se puede hacer para que dentro de un sp, se ejecute
varias veces otro sp,
pasando como parámetros campos de una consulta, a ver si me explico mejor
con el ejemplo:

Tengo este sp (el que llamaría al otro):

CREATE PROCEDURE pa_proceso_cierre_clase AS

Select Curso, IDCiclo from Cursos

/*
este select me devolveria:
Curso IDCiclo
1AM 1
1BT 1
2AM 2
2BT 2
*/
Curso e IDCiclo

EXEC pa_promovidos (Curso, IDCiclo)

como.

Muchas gracias por tu valioso tiempo y sabiduría.

PD: no me importa si el metodo a utilizar resulta poco óptimo, total este sp
se va a correr una vez a año.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
23/05/2006 - 14:52 | Informe spam
Pues si no te importa el rendimiento, puedes usar un cursor dentro del
procedimiento pa_proceso_cierre_clase. Echa un vistazo en los BOL acerca de
su uso


Un saludo

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

"Matías" escribió en el mensaje
news:
Hola a todos, como se puede hacer para que dentro de un sp, se ejecute
varias veces otro sp,
pasando como parámetros campos de una consulta, a ver si me explico mejor
con el ejemplo:

Tengo este sp (el que llamaría al otro):

CREATE PROCEDURE pa_proceso_cierre_clase AS

Select Curso, IDCiclo from Cursos

/*
este select me devolveria:
Curso IDCiclo
1AM 1
1BT 1
2AM 2
2BT 2
*/
Curso e IDCiclo

EXEC pa_promovidos (Curso, IDCiclo)

como.

Muchas gracias por tu valioso tiempo y sabiduría.

PD: no me importa si el metodo a utilizar resulta poco óptimo, total este


sp
se va a correr una vez a año.


Respuesta Responder a este mensaje
#2 Isaias
23/05/2006 - 17:13 | Informe spam
Yo odio los cursores:

CREATE PROCEDURE pr_proceso_cierre_clase
AS
BEGIN
SET NOCOUNT ON
CREATE TABLE #BULCLE (Curso CHAR(3), IDCiclo INT)
INSERT INTO #BULCLE
Select Curso, IDCiclo from Cursos
IF @@ROWCOUNT = 0
BEGIN
SELECT 'Error, Al construir la lista de registros'
RETURN(0)
END
DECLARE @Curso CHAR(3), @IDCiclo INT
WHILE EXISTS (SELECT Curso FROM #BULCLE)
BEGIN
SELECT TOP 1 @Curso = Curso, @IDCiclo = IDCiclo FROM #BULCLE
IF @@ROWCOUNT = 0
BREAK
EXEC pa_promovidos (@Curso, @IDCiclo)
DELETE #BULCLE WHERE Curso = @Curso
CONTINUE
END
END



Saludos
IIslas


"Matías" escribió:

Hola a todos, como se puede hacer para que dentro de un sp, se ejecute
varias veces otro sp,
pasando como parámetros campos de una consulta, a ver si me explico mejor
con el ejemplo:

Tengo este sp (el que llamaría al otro):

CREATE PROCEDURE pa_proceso_cierre_clase AS

Select Curso, IDCiclo from Cursos

/*
este select me devolveria:
Curso IDCiclo
1AM 1
1BT 1
2AM 2
2BT 2
*/
Curso e IDCiclo

EXEC pa_promovidos (Curso, IDCiclo)

como.

Muchas gracias por tu valioso tiempo y sabiduría.

PD: no me importa si el metodo a utilizar resulta poco óptimo, total este sp
se va a correr una vez a año.



Respuesta Responder a este mensaje
#3 Matías
23/05/2006 - 17:32 | Informe spam
Muchas gracias muchachos.
Respuesta Responder a este mensaje
#4 Carlos Sacristán
24/05/2006 - 09:52 | Informe spam
Yo estoy contigo, Isaías, pero la solución que propones en la práctica
es igual que usar un cursor...


Un saludo

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

"Isaias" escribió en el mensaje
news:
Yo odio los cursores:

CREATE PROCEDURE pr_proceso_cierre_clase
AS
BEGIN
SET NOCOUNT ON
CREATE TABLE #BULCLE (Curso CHAR(3), IDCiclo INT)
INSERT INTO #BULCLE
Select Curso, IDCiclo from Cursos
IF @@ROWCOUNT = 0
BEGIN
SELECT 'Error, Al construir la lista de registros'
RETURN(0)
END
DECLARE @Curso CHAR(3), @IDCiclo INT
WHILE EXISTS (SELECT Curso FROM #BULCLE)
BEGIN
SELECT TOP 1 @Curso = Curso, @IDCiclo = IDCiclo FROM #BULCLE
IF @@ROWCOUNT = 0
BREAK
EXEC pa_promovidos (@Curso, @IDCiclo)
DELETE #BULCLE WHERE Curso = @Curso
CONTINUE
END
END



Saludos
IIslas


"Matías" escribió:

> Hola a todos, como se puede hacer para que dentro de un sp, se ejecute
> varias veces otro sp,
> pasando como parámetros campos de una consulta, a ver si me explico


mejor
> con el ejemplo:
>
> Tengo este sp (el que llamaría al otro):
>
> CREATE PROCEDURE pa_proceso_cierre_clase AS
>
> Select Curso, IDCiclo from Cursos
>
> /*
> este select me devolveria:
> Curso IDCiclo
> 1AM 1
> 1BT 1
> 2AM 2
> 2BT 2
> */
> Curso e IDCiclo
>
> EXEC pa_promovidos (Curso, IDCiclo)
>
> como.
>
> Muchas gracias por tu valioso tiempo y sabiduría.
>
> PD: no me importa si el metodo a utilizar resulta poco óptimo, total


este sp
> se va a correr una vez a año.
>
>
>
Respuesta Responder a este mensaje
#5 Isaias
24/05/2006 - 23:05 | Informe spam
Gracias Carlos

¿Habria algo mejor?
Saludos
IIslas


"Carlos Sacristán" escribió:

Yo estoy contigo, Isaías, pero la solución que propones en la práctica
es igual que usar un cursor...


Un saludo

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

"Isaias" escribió en el mensaje
news:
> Yo odio los cursores:
>
> CREATE PROCEDURE pr_proceso_cierre_clase
> AS
> BEGIN
> SET NOCOUNT ON
> CREATE TABLE #BULCLE (Curso CHAR(3), IDCiclo INT)
> INSERT INTO #BULCLE
> Select Curso, IDCiclo from Cursos
> IF @@ROWCOUNT = 0
> BEGIN
> SELECT 'Error, Al construir la lista de registros'
> RETURN(0)
> END
> DECLARE @Curso CHAR(3), @IDCiclo INT
> WHILE EXISTS (SELECT Curso FROM #BULCLE)
> BEGIN
> SELECT TOP 1 @Curso = Curso, @IDCiclo = IDCiclo FROM #BULCLE
> IF @@ROWCOUNT = 0
> BREAK
> EXEC pa_promovidos (@Curso, @IDCiclo)
> DELETE #BULCLE WHERE Curso = @Curso
> CONTINUE
> END
> END
>
>
>
> Saludos
> IIslas
>
>
> "Matías" escribió:
>
> > Hola a todos, como se puede hacer para que dentro de un sp, se ejecute
> > varias veces otro sp,
> > pasando como parámetros campos de una consulta, a ver si me explico
mejor
> > con el ejemplo:
> >
> > Tengo este sp (el que llamaría al otro):
> >
> > CREATE PROCEDURE pa_proceso_cierre_clase AS
> >
> > Select Curso, IDCiclo from Cursos
> >
> > /*
> > este select me devolveria:
> > Curso IDCiclo
> > 1AM 1
> > 1BT 1
> > 2AM 2
> > 2BT 2
> > */
> > Curso e IDCiclo
> >
> > EXEC pa_promovidos (Curso, IDCiclo)
> >
> > como.
> >
> > Muchas gracias por tu valioso tiempo y sabiduría.
> >
> > PD: no me importa si el metodo a utilizar resulta poco óptimo, total
este sp
> > se va a correr una vez a año.
> >
> >
> >



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