建立預存程序

此主題描述如何使用 SQL Server Management Studio 及 Transact-SQL CREATE PROCEDURE 陳述式來建立 Transact-SQL 預存程序。

  • 開始之前:權限

  • 若要建立程序,請使用:SQL Server Management Studio、Transact-SQL

權限

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

如何建立預存程序

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

  • SQL Server Management Studio

  • Transact-SQL

使用 SQL Server Management Studio

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

  1. [物件總管] 中,連接到 Database Engine 的執行個體,然後展開該執行個體。

  2. 依序展開 [資料庫]、 AdventureWorks2012 資料庫,以及 [Programmability]

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

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

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

    參數

    作者

    Your name

    建立日期

    Today's date

    說明

    傳回員工資料。

    Procedure_name

    HumanResources.uspGetEmployeesTest

    @Param1

    @LastName

    @Datatype_For_Param1

    nvarchar(50)

    Default_Value_For_Param1

    NULL

    @Param2

    @FirstName

    @Datatype_For_Param2

    nvarchar(50)

    Default_Value_For_Param2

    NULL

  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 以做為 @LastName 參數值,然後輸入 Diane 值以做為 @FirstName 參數值。

警告注意事項注意

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

[回到頁首]

使用 Transact-SQL

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

  1. [物件總管] 中,連接到 Database Engine 的執行個體。

  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)