Sintaxis para incluir varios querys en un mismo procedimiento almacenado

17/02/2006 - 17:13 por Omar | Informe spam
Que tal, mi duda es la siguiente:

Cual sería la sintaxis en un procedimiento almacenado para realizar algo
parecido al siguiente ejemplo:

Ejemplo

IF opcion=1 then

SELECT * FROM tabla where @parametro1

ELSEIF opcion=2 then

INSERT INTO tabla Values(x,x)

ElSE

DELTE FROM tabla where @parametro2

END if

Saludos, y muchas gracias por cualquier ayuda.

Preguntas similare

Leer las respuestas

#6 Salvador Ramos
19/02/2006 - 21:11 | Informe spam
Hola,

A parte de todo lo que habéis comentado en cuanto a la sintaxis, os quiero
indicar que sería más optimo en ese caso hacer tres procedimientos
almacenados.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Noldis Chumacero" escribió en el mensaje
news:Ogf2Ji$

Omar,

Tienes razón.

Todas las variables utilizan el simbolo "@" por delante, por tanto en cada
opcion, debería ser "@opcion"

Para declarar una variable se utiliza

DECLARE @nombreVariable <Tipo de Dato>



Ing. Noldis Chumacero Chávez
Departamento de Sistemas
AeroSur S.A.
Santa Cruz de la Sierra, Bolivia
Telf. 3364446(236) 77074919
"Omar" escribió en el mensaje
news:eCFWtb$
Noldis Chumacero escribió:
Omar,

La cabecera de tu procedimiento debería ser:

CREATE PROCEDURE dbo.sp_ejemplo
@opcion INT,
@usuario varchar (10),
@password varchar (10)
AS
BEGIN
IF opcion=1
SELECT * FROM tabla WHERE tabla.campo = @parametro
IF opcion=2
INSERT INTO tabla VALUES(X,Y)
IF opcion<>1 AND opcion<>2
DELETE FROM Tabla WHERE tabla.campo = @parametro
END

Aqui dos observaciones:

1. Cuando crees un procedimiento almacenado trata de no nombrarlo
con las letras "sp" por delante, pues eso es reservado para los
procedimientos del sistema.
2. No olvides declarar todas las variables que utilizarás, en este
caso "@parametro" no esta declarado.

Saludos




Muchas gracias por tu respuesta y comentario, lo tomaré en cuenta.

Ahora solo tengo esta duda, en la sentencia "IF opcion=1" aquí no le debo
de anteponer el símbolo de "@" "IF @opcion=1" o si?

Y yo como que recuerdo que se podían declarar variables en los sp
poniendo la palabra reservada var, pero no se en que casos se usa esto,
espero y me puedan corregir y/o orientar al respecto.

Saludos.






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida