Compartilhar via


criando exibições e procedimentos armazenados

Agora que a Mary pode acessar o banco de dados TestData, talvez convenha criar alguns objetos de banco de dados, como uma exibição e um procedimento armazenado, e conceder a Mary acesso a eles. Uma exibição é uma instrução SELECT armazenada e um procedimento armazenado é uma ou mais instruções Transact-SQL executadas como um lote.

Exibições são tabelas do tipo para consultas e não aceitam parâmetros. Procedimentos armazenados são mais complexos que exibições. Procedimentos armazenados podem ter parâmetros de entrada e saída e conter instruções para controlar o fluxo do código, como instruções IF e WHILE. É uma boa prática de programação usar procedimentos armazenados para todas as ações repetitivas no banco de dados.

Neste exemplo, você usará CREATE VIEW para criar uma exibição que seleciona apenas duas das colunas na tabela Products. Em seguida, você usará CREATE PROCEDURE para criar um procedimento armazenado que aceita um parâmetro de preço e retorna apenas produtos que custam menos do que o valor do parâmetro especificado.

Para criar uma exibição

  • Execute a instrução a seguir para criar uma exibição muito simples que executa uma instrução SELECT e retorna os nomes e preços de nossos produtos para o usuário.

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

Teste a exibição

  • Exibições são tratadas como tabelas. Use uma instrução SELECT para acessar uma exibição.

    SELECT * FROM vw_Names;
    GO
    

Para criar um procedimento armazenado

  • A instrução a seguir cria um pr_Namesde nome de procedimento armazenado, aceita um parâmetro de entrada denominado @VarPrice do tipo de dados money. O procedimento armazenado imprime a instrução Products less than concatenada com o parâmetro de entrada que é alterado do tipo de dados money para o tipo de dados de caractere varchar(10). Depois, o procedimento executa uma instrução SELECT na exibição, passando o parâmetro de entrada como parte da cláusula WHERE. Isso retorna todos os produtos que custam menos do que o valor do 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
    

Testar o procedimento armazenado

  • Para testar o procedimento armazenado, digite e execute a instrução a seguir. O procedimento deve retornar os nomes dos dois produtos inseridos na tabela Products, na Lição 1, com um preço menor que 10.00.

    EXECUTE pr_Names 10.00;
    GO