CREATE PROCEDURE Dice_Palabra @palabra CHAR(30) AS PRINT @palabra; GO EXEC Dice_Palabra ‘Lo que quiera’; EXEC Dice_Palabra ‘Otra cosa’;
Aquí hemos hecho dos llamadas, una con el valor ‘Lo que quiera’ y otra con el valor ‘Otra cosa’.
Si queremos indicar varios parámetros los separamos por comas.
USE Biblio; --DROP PROC VerUsuariosPoblacion; --La comentamos la primera vez GO CREATE PROCEDURE VerUsuariosPoblacion @pob CHAR(30),@pro CHAR(30) AS SELECT * FROM usuarios WHERE poblacion=@pob AND provincia = @pro; GO EXEC VerUsuariosPoblacion Madrid, Valencia
En la llamada podemos indicar los valores de los parámetros de varias formas,
indicando sólo el valor de los parámetros (en este caso los tenemos que indicar en el mismo orden en que están definidos) como en el ejemplo anterior, o bien indicando el nombre del parámetro:
EXEC VerUsuariosPoblacion @pob=Madrid, @pro=Valencia
Indicar el nombre del parámetro en la llamada también nos permite indicar los valores en cualquier orden, la siguiente llamada es equivalente a la anterior, hemos invertido el orden y se ejecuta igual:
EXEC VerUsuariosPoblacion @pro=Valencia, @pob=Madrid
En este procedimiento todos los parámetros son obligatorios, no deja llamar con un solo parámetro.
EXEC VerUsuariosPoblacion Madrid
Da error.
Para definir un parámetro opcional tenemos que asignarle un valor por defecto en la definición del procedimiento.
DROP PROC VerUsuariosPoblacion2; GO CREATE PROCEDURE VerUsuariosPoblacion2 @pob CHAR(30),@pro CHAR(30)='Madrid' AS SELECT * FROM usuarios WHERE poblacion=@pob AND provincia = @pro; GO EXEC VerUsuariosPoblacion2 Madrid
En este caso, en la llamada sólo hemos indicado un valor, para el primer parámetro, el paramétro opcional no lo hemos indicado y se rellenará con el valor por defecto que indicamos en la definición.
Lo podemos hacer así porque el parámetro opcional es el último de la lista de parámetros. Cuando el parámetro opcional no es el último la llamada tiene que ser diferente, tenemos que nombrar los parámetros en la llamada, al menos a partir del parámetro opcional.
DROP PROC VerUsuariosPoblacion3; GO CREATE PROCEDURE VerUsuariosPoblacion3 @a CHAR(2),@pob CHAR(30)='Madrid',@pro CHAR(30) AS SELECT * FROM usuarios WHERE poblacion=@pob AND provincia = @pro; GO EXEC VerUsuariosPoblacion3 a,@pro='Madrid'
En este caso el parámetro opcional es el segundo de la lista de parámetros, cuando hacemos la llamada no podemos hacer como en otros lenguajes de dejar un hueco:
EXEC VerUsuariosPoblacion3 a, ,'Madrid'
Da error.
Esta forma da error, debemos utilizar la palabra DEFAULT o indicar el nombre de todos los parámetros que van detrás del opcional.
EXEC VerUsuariosPoblacion3 a,DEFAULT,'Madrid'
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.