Unidad 9. Programación en TRANSACT SQL (III)


Con un parámetro de entrada (la palabra que queremos que escriba)


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

Con varios parámetros

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.

Con parámetros opcionales

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' 
Febrero-2010
Pág. 9.3

Atrás  Inicio  Adelante





Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies


© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.