事件
3月31日 下午11時 - 4月2日 下午11時
規模最大的 SQL、Fabric 與 Power BI 學習盛會。 3 月 31 日至 4 月 2 日。 使用代碼 FABINSIDER 可節省 $400。
立即報名適用於:Microsoft Fabric 中的 SQL Server
Azure SQL 資料庫 Azure SQL 受控執行個體
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database
本文描述如何使用 SQL Server Management Studio 以及使用 Transact-SQL CREATE PROCEDURE 陳述式,建立 SQL Server 預存程序。
需要在資料庫中的 CREATE PROCEDURE 權限,以及在建立程序時所在的結構描述上的 ALTER 權限。
您可以使用 SQL Server Management Studio (SSMS) 使用者介面或 SSMS 查詢視窗中的 Transact-SQL 來建立預存程序。 請務必使用最新版本的 SSMS。
備註
本文中的預存程序範例使用範例 AdventureWorksLT2022
(SQL Server) 或 AdventureWorksLT
(Azure SQL 資料庫) 資料庫。 如需如何取得和使用 AdventureWorksLT
範例資料庫的詳細資訊,請參閱 AdventureWorks 範例資料庫。
若要在 SSMS 中建立預存程序:
在 [物件總管] 中,連線到 SQL Server 或 Azure SQL 資料庫的執行個體。
如需詳細資訊,請參閱下列快速入門:
展開執行個體,然後展開 [資料庫]。
展開您要的資料庫,然後展開 [可程式性]。
以滑鼠右鍵按一下 [預存程序],然後選取 [新增]>[預存程序]。 新的查詢視窗隨即開啟,其中包含預存程序的範本。
預設預存程序範本有兩個參數。 如果您的預存程序具有更少、更多參數或沒有參數,請視需要新增或移除範本中的參數行。
在 [查詢] 功能表上,選取 [指定範本參數的值]。
在 [指定範本參數值] 對話框中,提供 [值] 字段的下列資訊:
Name
。ProcedureName
。@p1
,例如 @ColumnName1。int
,例如 nvarchar(50)。0
。@p2
,例如 @ColumnName2。int
,例如 nvarchar(50)。0
。下列螢幕擷取畫面顯示範例預存程序的已完成對話框:
選取 [確定]。
在 [查詢編輯器] 中,以您程序的查詢取代 SELECT 陳述式。
下列程式碼顯示範例預存程序的已完成 CREATE PROCEDURE 陳述式:
-- =======================================================
-- Create Stored Procedure Template for Azure SQL Database
-- =======================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE SalesLT.uspGetCustomerCompany
(
-- Add the parameters for the stored procedure here
@LastName nvarchar(50) = NULL,
@FirstName nvarchar(50) = NULL
)
AS
/*
-- =============================================
-- Author: My Name
-- Create Date: 01/23/2024
-- Description: Returns the customer's company name.
-- =============================================
*/
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON
-- Insert statements for procedure here
SELECT FirstName, LastName, CompanyName
FROM SalesLT.Customer
WHERE FirstName = @FirstName AND LastName = @LastName;
END
GO
若要測試此語法,請在 [查詢] 功能表中選取 [剖析]。 改正所有錯誤。
從工具列選取 [執行]。 程序也可建立為資料庫中的物件。
若要查看 [物件總管] 中所列的新程序,請以滑鼠右鍵按一下 [預存程序],然後選取 [重新整理]。
若要執行程序:
在 [物件總管] 中,請以滑鼠右鍵按一下預存程序名稱,然後選取 [執行預存程序]。
在 [執行程序] 視窗中,輸入所有參數的值,然後選取 [確定]。 如需詳細指引,請參閱執行預存程序。
例如,若要執行 SalesLT.uspGetCustomerCompany
範例程序,請為 @LastName 參數輸入 Cannon,併為 @FirstName 參數輸入 Chris,然後選取 [確定]。 預存程序隨即執行,並傳回 FirstName
Chris、LastName
Cannon 和 CompanyName
Outdoor Sporting Goods。
重要
驗證所有使用者輸入。 在使用者輸入完成驗證前,請勿加以串連。 請勿執行由未經驗證之使用者輸入所建構的命令。
若要在 SSMS 查詢編輯器中建立程序:
在 SSMS 中,連線到 SQL Server 或 Azure SQL 資料庫的執行個體。
從工具列中選取 [新增查詢]。
在查詢視窗中輸入下列程序碼,並以您自己的值取代 <ProcedureName>
、任何參數的名稱和資料類型以及 SELECT 陳述式。
CREATE PROCEDURE <ProcedureName>
@<ParameterName1> <data type>,
@<ParameterName2> <data type>
AS
SET NOCOUNT ON;
SELECT <your SELECT statement>;
GO
例如,下列陳述式會在 AdventureWorksLT
資料庫中建立與上一個範例相同的預存程序,其程序名稱稍有不同。
CREATE PROCEDURE SalesLT.uspGetCustomerCompany1
@LastName nvarchar(50),
@FirstName nvarchar(50)
AS
SET NOCOUNT ON;
SELECT FirstName, LastName, CompanyName
FROM SalesLT.Customer
WHERE FirstName = @FirstName AND LastName = @LastName;
GO
從工具列中選取 [執行] 以執行查詢。 預存程序已建立。
若要執行預存程序,請在新的查詢視窗中輸入 EXECUTE 陳述式,提供任何參數的值,然後選取 [執行]。 如需詳細指引,請參閱執行預存程序。
事件
3月31日 下午11時 - 4月2日 下午11時
規模最大的 SQL、Fabric 與 Power BI 學習盛會。 3 月 31 日至 4 月 2 日。 使用代碼 FABINSIDER 可節省 $400。
立即報名訓練