ตอนที่ 2 : การสร้าง Parameters รับค่าบน Stored Procedure (SQL Server : Stored Procedure) |
ตอนที่ 2 : การสร้าง Parameters รับค่าบน Stored Procedure (SQL Server : Stored Procedure) ในการเขียน Stored Procedure สิ่งที่ขาดไม่ได้เลยคือ Parameters ซึ่งความหมายของ Parameters ก็จะเหมือนกับการเขียนโปรแกรมในภาษาอื่น ๆ ในรูปแบบของ Method หรือ Function คือ Parameters จะเป็นเหมือนค่าตัวแปรที่รอรับและจำเป็นจะต้องส่งมาพร้อมกับการเรียกใช้งาน Stored Procedure และภายใน Stored Procedure ก็จะนำค่า Parameters หรือตัวแปรเหล่านี้ไปใช้งานต่อไป
โครงสร้างของตาราง CUSTOMER และ COUNTRY
Table : CUSTOMER
Table : COUNTRY
Syntax Parameters รูปแบบการสร้าง Parameters บน Stored Procedure
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
-- Add the parameters for the stored procedure here
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
Example 1 : การสร้าง Parameters และการส่งค่า Parameters ไปยัง Stored Procedure
USE [mydatabase]
GO
/****** Object: StoredProcedure [dbo].[myStoredProcedure] Script Date: 11-Sep-15 3:29:52 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[myStoredProcedure]
@pCountryCode VARCHAR(2)
AS
BEGIN
SELECT * FROM CUSTOMER WHERE COUNTRY_CODE = @pCountryCode
END
GO
ในตัอย่างนี้สร้าง Parameters ชือว่า @pCountryCode กำหนดชนิดแบบ VARCHAR(2)
EXEC myStoredProcedure 'US'
และนำค่าไป COUNTRY_CODE = @pCountryCode
Result
Example 2 : การสร้าง Parameters ที่มากกว่า 1 ค่า และการส่งค่า Parameters ไปยัง Stored Procedure
USE [mydatabase]
GO
/****** Object: StoredProcedure [dbo].[myStoredProcedure] Script Date: 11-Sep-15 3:29:52 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[myStoredProcedure]
@pCountryCode VARCHAR(2),
@pUsed INTEGER
AS
BEGIN
SELECT * FROM CUSTOMER WHERE COUNTRY_CODE = @pCountryCode
AND USED >= @pUsed
END
GO
ในตัอย่างนี้สร้าง Parameters ชือว่า @pCountryCode กำหนดชนิดแบบ VARCHAR(2) และ @pUsed แบบ INTEGER
EXEC myStoredProcedure 'US','200000'
และนำค่าไป COUNTRY_CODE = @pCountryCode และ USED >= @pUsed
Result
|