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

#1 Noldis Chumacero
17/02/2006 - 17:45 | Informe spam
Omar,

seria

IF opcion=1
SELECT * FROM tabla WHERE tabla.campo [operador] @parametro
IF opcion=2
INSERT INTO tabla VALUES(X,Y)
IF opcion<>1 AND opcion<>2
DELETE FROM Tabla WHERE tabla.campo [operador] @parametro


Si te das cuenta, en este no hay un ELSEIF por tanto al final se debe
verificar por que no sea ni opcion 1 ni 2

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:
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.

Respuesta Responder a este mensaje
#2 Omar
17/02/2006 - 18:24 | Informe spam
Noldis Chumacero escribió:

Omar,

seria

IF opcion=1
SELECT * FROM tabla WHERE tabla.campo [operador] @parametro
IF opcion=2
INSERT INTO tabla VALUES(X,Y)
IF opcion<>1 AND opcion<>2
DELETE FROM Tabla WHERE tabla.campo [operador] @parametro


Si te das cuenta, en este no hay un ELSEIF por tanto al final se debe
verificar por que no sea ni opcion 1 ni 2



Muchas gracias, entonces la sintaxis completa sería

CREATE PROCEDURE dbo.sp_ejemplo
var
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


Ahora solo una pregunta mas:

La declaración de la variable opción es correcta?

Gracias
Respuesta Responder a este mensaje
#3 Noldis Chumacero
17/02/2006 - 19:58 | Informe spam
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


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:OuShAc%
Noldis Chumacero escribió:
Omar,

seria

IF opcion=1
SELECT * FROM tabla WHERE tabla.campo [operador] @parametro
IF opcion=2
INSERT INTO tabla VALUES(X,Y)
IF opcion<>1 AND opcion<>2
DELETE FROM Tabla WHERE tabla.campo [operador] @parametro


Si te das cuenta, en este no hay un ELSEIF por tanto al final se debe
verificar por que no sea ni opcion 1 ni 2



Muchas gracias, entonces la sintaxis completa sería

CREATE PROCEDURE dbo.sp_ejemplo
var
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


Ahora solo una pregunta mas:

La declaración de la variable opción es correcta?

Gracias

Respuesta Responder a este mensaje
#4 Omar
17/02/2006 - 20:18 | Informe spam
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.
Respuesta Responder a este mensaje
#5 Noldis Chumacero
17/02/2006 - 20:34 | Informe spam
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.

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