Lección 2: 3: creación de vistas y procedimientos almacenadosLesson 2-3 - Creating Views and Stored Procedures

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síAzure SQL DatabasesíAzure SQL Data Warehouse síAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse Ahora que Mary puede tener acceso a la TestData base de datos, puede que desee crear algunos objetos de base de datos, como una vista o un procedimiento almacenado, y, a continuación, conceder a Mary acceso a ellos. Now that Mary can access the TestData database, you may want to create some database objects, such as a view and a stored procedure, and then grant Mary access to them. Una vista es una instrucción SELECT almacenada y un procedimiento almacenado es una o varias instrucciones Transact-SQLTransact-SQL que se ejecutan como un lote.A view is a stored SELECT statement, and a stored procedure is one or more Transact-SQLTransact-SQL statements that execute as a batch.

Las vistas se consultan como las tablas y no aceptan parámetros.Views are queried like tables and do not accept parameters. Los procedimientos almacenados son más complejos que las vistas.Stored procedures are more complex than views. 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.Stored procedures can have both input and output parameters and can contain statements to control the flow of the code, such as IF and WHILE statements. Una práctica recomendable de programación es usar procedimientos almacenados para realizar todas las tareas repetitivas en la base de datos.It is good programming practice to use stored procedures for all repetitive actions in the database.

Para este ejemplo, usará CREATE VIEW para crear una vista que seleccione solo dos de las columnas de la tabla Products .For this example, you will use CREATE VIEW to create a view that selects only two of the columns in the Products table. A continuación, usará CREATE PROCEDURE para crear un procedimiento almacenado que acepta un parámetro de precio y devuelve solo los productos cuyo costo es menor que el valor del parámetro especificado.Then, you will use CREATE PROCEDURE to create a stored procedure that accepts a price parameter and returns only those products that cost less than the specified parameter value.

Para crear una vistaTo create a view

  1. Ejecute la instrucción siguiente para crear una vista muy sencilla que ejecuta una instrucción SELECT y devuelve los nombres y los precios de nuestros productos al usuario.Execute the following statement to create a very simple view that executes a select statement, and returns the names and prices of our products to the user.

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

Pruebe la vistaTest the view

  1. Las vistas se tratan como tablas.Views are treated just like tables. Use una instrucción SELECT para tener acceso a la vista.Use a SELECT statement to access a view.

    SELECT * FROM vw_Names;  
    GO  
    

Para crear un procedimiento almacenadoTo create a stored procedure

  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.The following statement creates a stored procedure name pr_Names, accepts an input parameter named @VarPrice of data type 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) .The stored procedure prints the statement Products less than concatenated with the input parameter that is changed from the money data type into a varchar(10) character data type. 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 .Then, the procedure executes a SELECT statement on the view, passing the input parameter as part of the WHERE clause. Esto devuelve todos los productos cuyo costo es menor que el valor del parámetro de entrada.This returns all products that cost less than the input parameter value.

    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 almacenadoTest the stored procedure

  1. Para probar el procedimiento almacenado, escriba y ejecute la instrucción siguiente.To test the stored procedure, type and execute the following statement. 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.The procedure should return the names of the two products entered into the Products table in Lesson 1 with a price that is less than 10.00.

    EXECUTE pr_Names 10.00;  
    GO  
    

Siguiente tarea de la lecciónNext Task in Lesson

Conceder acceso a un objeto de base de datosGranting Access to a Database Object

Vea tambiénSee Also

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