Compartir a través de


Crear vistas y procedimientos almacenados

Ahora que Mary puede acceder a la base de datos TestData , es posible que quiera crear algunos objetos de base de datos, como una vista y un procedimiento almacenado, y, a continuación, conceder a Mary acceso a ellos. Una vista es una instrucción SELECT almacenada y un procedimiento almacenado es una o varias instrucciones Transact-SQL que se ejecutan como un lote.

Las vistas se consultan como tablas y no aceptan parámetros. Los procedimientos almacenados son más complejos que las vistas. Los procedimientos almacenados pueden tener parámetros de entrada y salida y pueden contener instrucciones para controlar el flujo del código, como instrucciones IF y WHILE. Una práctica recomendable de programación es usar procedimientos almacenados para realizar todas las tareas repetitivas en la base de datos.

En este ejemplo, usará CREATE VIEW para crear una vista que seleccione solo dos de las columnas de la tabla Products . A continuación, usará CREATE PROCEDURE para crear un procedimiento almacenado que acepte un parámetro price y devuelva solo los productos que cuestan menos que el valor de parámetro especificado.

Para crear una vista

  1. Ejecute la siguiente instrucción para crear una vista muy sencilla que realice una instrucción de selección y devuelva al usuario los nombres y precios de nuestros productos.

    CREATE VIEW vw_Names  
       AS  
       SELECT ProductName, Price FROM Products;  
    GO  
    
    

Pruebe la vista

  1. Las vistas se tratan como tablas. Use una instrucción SELECT para tener acceso a la vista.

    SELECT * FROM vw_Names;  
    GO  
    
    

Para crear un procedimiento almacenado

  1. La siguiente instrucción crea un procedimiento almacenado denominado pr_Names, acepta un parámetro de entrada denominado @VarPrice del tipo de datos money. El procedimiento almacenado imprime la instrucción Products less than concatenada con el parámetro de entrada que cambia del tipo de datos money a un tipo de datos de carácter varchar(10) . A continuación, el procedimiento ejecuta una instrucción SELECT en la vista y le pasa el parámetro de entrada como parte de la cláusula WHERE . Esto devuelve todos los productos cuyo costo es menor que el valor del parámetro de entrada.

    CREATE PROCEDURE pr_Names @VarPrice money  
       AS  
       BEGIN  
          -- The print statement returns text to the user  
          PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10));  
          -- A second statement starts here  
          SELECT ProductName, Price FROM vw_Names  
                WHERE Price < @varPrice;  
       END  
    GO  
    
    

Probar el procedimiento almacenado

  1. Para probar el procedimiento almacenado, escriba y ejecute la instrucción siguiente. El procedimiento debe devolver los nombres de dos productos introducidos en la tabla Products en la lección 1 con un precio menor que 10.00.

    EXECUTE pr_Names 10.00;  
    GO  
    
    

Siguiente tarea de la lección

Conceder acceso a un objeto de base de datos

Véase también

CREATE VIEW (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)