建立檢視和預存程序

新增: 2006 年 4 月 14 日

既然 Mary 現在能存取 TestData 資料庫,您或許想要建立一些資料庫物件,如檢視和預存程序,然後授與 Mary 存取這些物件。檢視是預存的 SELECT 陳述式,而預存程序是一個或多個批次執行的 Transact-SQL 陳述式。

檢視的查詢方式就跟資料表一樣,而且不接受參數。預存程序就比檢視還要複雜。預存程序能有輸出和輸入參數,而且還能包含控制程式碼流程的陳述式,如 IF 和 WHILE 陳述式。對於所有在資料庫中的重複動作,使用預存程序是一個不錯的程式設計方法。

例如,您將使用 CREATE VIEW 建立檢視,其中只選取 Products 資料表中的兩個資料行。接著,您將使用 CREATE PROCEDURE 建立預存程序,其中接受 price 參數並只傳回成本小於指定參數值的產品。

建立檢視

  1. 執行下列陳述式建立簡單的檢視,其中會執行 SELECT 陳述式並將產品名稱及價格傳回給使用者。

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

測試檢視

  1. 檢視的處理方式和資料表一樣。使用 SELECT 陳述式存取檢視。

    SELECT * FROM vw_Names;
    GO
    

若要建立預存程序

  1. 下列陳述式會建立預存程序名稱 pr_Names,接受資料類型為 money 的輸入參數 (名稱是 @VarPrice)。預存程序會列印與輸出參數串連的 Products less than 陳述式,而這個輸出參數會從 money 資料類型變更為 varchar(10) 字元資料類型。然後,預存程序會執行檢視上的 SELECT 陳述式,將輸出參數當做 WHERE 子句的一部分進行傳遞。這樣會傳回成本小於輸出參數值的所有產品。

    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
    

測試預存程序

  1. 若要測試預存程序,請輸入並執行下列陳述式。這個程序應該傳回兩個成本小於 10.00 的產品名稱,這兩個產品是在第 1 課輸入 Products 資料表而來的。

    EXECUTE pr_Names 10.00;
    GO
    

本課程的下一項工作

授與資料庫物件的存取權

請參閱

其他資源

CREATE VIEW (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
流程控制
程序 Transact-SQL

說明及資訊

取得 SQL Server 2005 協助