Pregunta de principiante

19/08/2004 - 02:07 por Natacha Camacho | Informe spam
Hola a todos

Les pido me aclaren como debo simular rutinas en un
procedimiento almacenado... no se como se debe codificar
para lograr el siguiente efecto:



Create proc procedimiento1
as

sentencia
sentencia
bla bla
goto rutina1
bla bla
bla
goto rutina1

rutina1:
create table #t (valor int)
insert #t

Que debo hacer para llamar Rutina1 desde cualquier parte
del procedimiento, no quiero hacer un llamado a otro
procedimiento porque necesito que la rutina cree una tabla
temporal.


gracias a todos
 

Leer las respuestas

#1 MAXI
19/08/2004 - 02:13 | Informe spam
Hola, copiado de los BOL:

Utilizar GOTO
La instrucción GOTO provoca que, en la ejecución de un lote de Transact-SQL,
se salte a una etiqueta. Ninguna de las instrucciones situadas entre la
instrucción GOTO y la etiqueta se ejecutarán. El nombre de la etiqueta se
define con la sintaxis:

label_name:

No abuse de la utilización de la instrucción GOTO. Una utilización excesiva
de esta instrucción puede hacer que resulte difícil entender la lógica de un
lote de Transact-SQL. La lógica desarrollada con GOTO casi siempre se puede
implementar con las instrucciones de control de flujo. La mejor utilización
de GOTO se produce cuando se necesita romper la anidación profunda de
instrucciones de control de flujo.

La etiqueta que constituye el objetivo de un GOTO sólo identifica el destino
del salto. No hace nada para aislar las instrucciones que le siguen de las
instrucciones que le preceden. Cualquier usuario que ejecute las
instrucciones situadas justo antes de la etiqueta se la saltará y ejecutará
las instrucciones posteriores a la misma. Esto ocurrirá a menos que la
instrucción que precede a la etiqueta sea a su vez una instrucción de
control de flujo como, por ejemplo, RETURN.

Esto es un ejemplo de un GOTO:

IF (SELECT SYSTEM_USER()) = 'payroll'
GOTO calculate_salary
calculate_salary:






Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar
Msn Messager:

"Natacha Camacho" escribió en el
mensaje news:18a401c48580$871bf140$
Hola a todos

Les pido me aclaren como debo simular rutinas en un
procedimiento almacenado... no se como se debe codificar
para lograr el siguiente efecto:



Create proc procedimiento1
as

sentencia
sentencia
bla bla
goto rutina1
bla bla
bla
goto rutina1

rutina1:
create table #t (valor int)
insert #t

Que debo hacer para llamar Rutina1 desde cualquier parte
del procedimiento, no quiero hacer un llamado a otro
procedimiento porque necesito que la rutina cree una tabla
temporal.


gracias a todos




Preguntas similares