共用方式為


建立預存程序

本主題說明如何使用 SQL Server Management Studio 以及使用 Transact-SQL CREATE PROCEDURE 陳述式,建立 Transact-SQL 預存程序。

權限

需要在資料庫中的 CREATE PROCEDURE 權限,以及在建立程序時所在的結構描述上的 ALTER 權限。

如何建立預存程式

您可以使用下列其中一項:

使用 SQL Server Management Studio

在 [物件總管] 中建立程序

  1. 在 [物件總管] 中,連線到資料庫引擎的執行個體,然後展開該執行個體。

  2. 依序 展開 [資料庫]、[ AdventureWorks2012 ] 資料庫,然後展開 [ 可程式性]。

  3. 以滑鼠右鍵按一下 [預存程序],然後按一下 [新增預存程序]。

  4. [查詢] 功能表上,按一下 [指定範本參數的值]

  5. [指定範本參數的值] 對話方塊中,為顯示的參數輸入下列值。

    參數
    作者 您的名字
    建立日期 今天的日期
    描述 傳回員工資料。
    Procedure_name HumanResources.uspGetEmployeesTest
    @Param1 @LastName
    @Datatype_For_Param1 nvarchar(50)
    預設值_參數1
    @Param2 @FirstName
    @Datatype_For_Param2 nvarchar(50)
    Default_Value_For_Param2
  6. 按一下 [確定]。

  7. [查詢編輯器] 中,以下列陳述式取代 SELECT 陳述式:

    SELECT FirstName, LastName, Department  
    FROM HumanResources.vEmployeeDepartmentHistory  
    WHERE FirstName = @FirstName AND LastName = @LastName  
        AND EndDate IS NULL;  
    
  8. 若要測試語法,請在 [查詢] 功能表上按一下 [剖析] 。 如果傳回錯誤訊息,請比較陳述式與上列資訊,並視需要進行更正。

  9. 若要建立程序,請在 [查詢] 功能表中,按一下 [執行]。 程序也可建立為資料庫中的物件。

  10. 若要查看物件總管中所列的程序,請以滑鼠右鍵按一下 [預存程序],然後選取 [重新整理]。

  11. 若要執行程序,請在物件總管中,以滑鼠右鍵按一下預存程序名稱 HumanResources.uspGetEmployeesTest,然後選取 [執行預存程序]。

  12. 在 [執行程序] 視窗中,輸入 Margheim 以作為 參數值,然後輸入 Diane 值以作為 @LastName 參數值。

警告

驗證所有使用者輸入。 在使用者輸入完成驗證前,請勿加以串連。 請勿執行由未經驗證之使用者輸入所建構的命令。

使用 TRANSACT-SQL

若要在查詢編輯器中建立程序

  1. 在物件總管中,連線到資料庫引擎的執行個體。

  2. [檔案] 功能表中,按一下 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會使用不同的程序名稱建立與上述相同的預存程序。

    USE AdventureWorks2012;  
    GO  
    CREATE PROCEDURE HumanResources.uspGetEmployeesTest2   
        @LastName nvarchar(50),   
        @FirstName nvarchar(50)   
    AS
    
        SET NOCOUNT ON;  
        SELECT FirstName, LastName, Department  
        FROM HumanResources.vEmployeeDepartmentHistory  
        WHERE FirstName = @FirstName AND LastName = @LastName  
        AND EndDate IS NULL;  
    GO
    
  4. 若要執行程序,請將下列範例複製並貼到新的查詢視窗中,然後按一下 [執行] 。 請注意,此處顯示指定參數值的不同方法。

    EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman', N'Pilar';  
    -- Or  
    EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman', @FirstName = N'Pilar';  
    GO  
    -- Or  
    EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar', @LastName = N'Ackerman';  
    GO
    

另請參閱

CREATE PROCEDURE (Transact-SQL)