Condividi tramite


Creazione di viste e procedure memorizzate

Ora che Mary può accedere al database TestData , è possibile creare alcuni oggetti di database, ad esempio una vista e una stored procedure, quindi concedere a Mary l'accesso. Una vista è un'istruzione SELECT archiviata e una stored procedure è una o più istruzioni Transact-SQL eseguite come batch.

Le viste vengono sottoposte a query come tabelle e non accettano parametri. Le stored procedure sono più complesse delle viste. Le stored procedure possono avere parametri di input e output e possono contenere istruzioni per controllare il flusso del codice, ad esempio istruzioni IF e WHILE. È consigliabile usare stored procedure per tutte le azioni ripetitive nel database.

Per questo esempio si userà CREATE VIEW per creare una vista che seleziona solo due delle colonne nella tabella Products . Si userà quindi CREATE PROCEDURE per creare una stored procedure che accetta un parametro price e restituisce solo i prodotti che costano meno del valore del parametro specificato.

Per creare una visualizzazione

  1. Eseguire l'istruzione seguente per creare una visualizzazione molto semplice che esegue un'istruzione select e restituisce i nomi e i prezzi dei prodotti all'utente.

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

Testare la visualizzazione

  1. Le viste vengono trattate esattamente come le tabelle. Usare un'istruzione SELECT per accedere a una visualizzazione.

    SELECT * FROM vw_Names;  
    GO  
    
    

Per creare una stored procedure

  1. L'istruzione seguente crea una stored procedure di nome pr_Names e accetta un parametro di input denominato @VarPrice di tipo money. La stored procedure stampa l'istruzione Products less than concatenata con il parametro di input che viene modificato dal tipo di dati money a un tipo di dati carattere varchar(10). La routine esegue quindi un'istruzione SELECT nella vista, passando il parametro di input come parte della WHERE clausola . Restituisce tutti i prodotti che costano meno del valore del parametro di input.

    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  
    
    

Testare la procedura memorizzata

  1. Per testare la stored procedure, digitare ed eseguire l'istruzione seguente. La procedura deve restituire i nomi dei due prodotti immessi nella Products tabella della lezione 1 con un prezzo minore di 10.00.

    EXECUTE pr_Names 10.00;  
    GO  
    
    

Attività successiva nella lezione

Concessione dell'accesso a un oggetto di database

Vedere anche

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