Evaluar Casos en código TSQL

02/03/2004 - 09:00 por José G. Díaz U. | Informe spam
Saludos.

Qué estructura de control me permite usar SQL Server 2000 cuando programo un
SP si quiero hacer que se ejecute un código determinado internamente?
es decir:

SpProcedimiento '999', 'Modificar', @r output

y dentro del procedimiento algo así como:

alter proc SpProcedimiento
@valor int,
@operacion char(10),
@respuesta nvarchar(50) output
as
[SI EL VALOR ES 'Agregar']
[/SI EL VALOR ES 'Agregar']

[SI EL VALOR ES 'Modificar']
[/SI EL VALOR ES 'Modificar']

...

[SI EL VALOR ES 'XXXX']
[/SI EL VALOR ES 'XXXX']

Gracias!

José

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
02/03/2004 - 13:15 | Informe spam
El viejo y amado IF

if @valor = 'x'
begin
print 'x'
end


y asi seguis

Bye

Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"José G. Díaz U." escribió en el mensaje
news:
Saludos.

Qué estructura de control me permite usar SQL Server 2000 cuando programo


un
SP si quiero hacer que se ejecute un código determinado internamente?
es decir:

SpProcedimiento '999', 'Modificar', @r output

y dentro del procedimiento algo así como:

alter proc SpProcedimiento
@valor int,
@operacion char(10),
@respuesta nvarchar(50) output
as
[SI EL VALOR ES 'Agregar']
[/SI EL VALOR ES 'Agregar']

[SI EL VALOR ES 'Modificar']
[/SI EL VALOR ES 'Modificar']

...

[SI EL VALOR ES 'XXXX']
[/SI EL VALOR ES 'XXXX']

Gracias!

José








Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 24/02/2004
Respuesta Responder a este mensaje
#2 Javier Loria
02/03/2004 - 13:21 | Informe spam
Hola Jose:
La estructura de control que requieres es el IF:
=IF (@Valor='Agregar')
BEGIN
INSERT Tabla ()
VALUES ()
SET @Respuesta='Agregar Realizado'
END
IF (@Valor='Modificar')
BEGIN
UPDATE Tabla
SET ...
SET @Respuesta= 'Modificar Realizado'
END
...
IF (@Valor='XXX')
BEGIN
.
END
= No existe en SQL una estrutura de control equivalente al SWITCH/CASE. El
CASE de SQL es una funcion parecida al IIF de algunos lenguajes.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


José G. Díaz U. escribio:
Saludos.

Qué estructura de control me permite usar SQL Server 2000 cuando
programo un SP si quiero hacer que se ejecute un código determinado
internamente? es decir:

SpProcedimiento '999', 'Modificar', @r output

y dentro del procedimiento algo así como:

alter proc SpProcedimiento
@valor int,
@operacion char(10),
@respuesta nvarchar(50) output
as
[SI EL VALOR ES 'Agregar']
[/SI EL VALOR ES 'Agregar']

[SI EL VALOR ES 'Modificar']
[/SI EL VALOR ES 'Modificar']

...

[SI EL VALOR ES 'XXXX']
[/SI EL VALOR ES 'XXXX']

Gracias!

José
Respuesta Responder a este mensaje
#3 José G. Díaz U.
02/03/2004 - 14:10 | Informe spam
Saludos!

Gracias!...no me esperaba que fuera tan simple :) aunque "si funciona, no lo
cambies" ...jajaja.

Qué opinan de generar un procedimiento almacenado de este tipo?, es decir,
que administre todas las operaciones contra una tabla maestra?

Suerte!

Jo

"José G. Díaz U." escribió en el mensaje
news:
Saludos.

Qué estructura de control me permite usar SQL Server 2000 cuando programo


un
SP si quiero hacer que se ejecute un código determinado internamente?
es decir:

SpProcedimiento '999', 'Modificar', @r output

y dentro del procedimiento algo así como:

alter proc SpProcedimiento
@valor int,
@operacion char(10),
@respuesta nvarchar(50) output
as
[SI EL VALOR ES 'Agregar']
[/SI EL VALOR ES 'Agregar']

[SI EL VALOR ES 'Modificar']
[/SI EL VALOR ES 'Modificar']

...

[SI EL VALOR ES 'XXXX']
[/SI EL VALOR ES 'XXXX']

Gracias!

José



Respuesta Responder a este mensaje
#4 Maximiliano D. A.
02/03/2004 - 14:14 | Informe spam
A mi me gusta mas tenerlo separado pero es solo una cuestion mia y de orden
mio nomas!!

Bye


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"José G. Díaz U." escribió en el mensaje
news:
Saludos!

Gracias!...no me esperaba que fuera tan simple :) aunque "si funciona, no


lo
cambies" ...jajaja.

Qué opinan de generar un procedimiento almacenado de este tipo?, es decir,
que administre todas las operaciones contra una tabla maestra?

Suerte!

Jo

"José G. Díaz U." escribió en el mensaje
news:
> Saludos.
>
> Qué estructura de control me permite usar SQL Server 2000 cuando


programo
un
> SP si quiero hacer que se ejecute un código determinado internamente?

> es decir:
>
> SpProcedimiento '999', 'Modificar', @r output
>
> y dentro del procedimiento algo así como:
>
> alter proc SpProcedimiento
> @valor int,
> @operacion char(10),
> @respuesta nvarchar(50) output
> as
> [SI EL VALOR ES 'Agregar']
> [/SI EL VALOR ES 'Agregar']
>
> [SI EL VALOR ES 'Modificar']
> [/SI EL VALOR ES 'Modificar']
>
> ...
>
> [SI EL VALOR ES 'XXXX']
> [/SI EL VALOR ES 'XXXX']
>
> Gracias!
>
> José
>
>
>







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 24/02/2004
Respuesta Responder a este mensaje
#5 Javier Loria
02/03/2004 - 15:11 | Informe spam
Hola Jose:
No, yo no haria un procedimiento asi.
Las razones mas importantes para hacer procedimientos son: Seguridad,
Desempeno y Mantenimiento. Un patron de procedimientos de este tipo no es
muy util por seguridad ya que el procedimiento todopoderoso no te permite
asignar en la aplicacion "permisos" separados de SELECT/INSERT/DELETE/UPDATE
Desde el punto de vista de mantenimiento tiene ventajas/desventajas esta
todo el codigo en un sitio, pero es mas dificil porque es mucho mas codigo.
En mi criterio es preferible tener procedimientos cortos y puntales.
Y desde el punto de vista de Desempeno este esquema debe ser peor porque
se deben producir mas recompilaciones de procedimiento y porque es mas
codigo.
Solo una opinion,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


José G. Díaz U. escribio:
Saludos!

Gracias!...no me esperaba que fuera tan simple :) aunque "si
funciona, no lo cambies" ...jajaja.

Qué opinan de generar un procedimiento almacenado de este tipo?, es
decir, que administre todas las operaciones contra una tabla maestra?

Suerte!

Jo

"José G. Díaz U." escribió en el mensaje
news:
Saludos.

Qué estructura de control me permite usar SQL Server 2000 cuando
programo un SP si quiero hacer que se ejecute un código determinado
internamente? es decir:

SpProcedimiento '999', 'Modificar', @r output

y dentro del procedimiento algo así como:

alter proc SpProcedimiento
@valor int,
@operacion char(10),
@respuesta nvarchar(50) output
as
[SI EL VALOR ES 'Agregar']
[/SI EL VALOR ES 'Agregar']

[SI EL VALOR ES 'Modificar']
[/SI EL VALOR ES 'Modificar']

...

[SI EL VALOR ES 'XXXX']
[/SI EL VALOR ES 'XXXX']

Gracias!

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