ขั้นตอน เป็นโปรแกรมในฐานข้อมูลของหลายคำสั่งที่คุณบันทึกเพื่อใช้ในภายหลัง ใน SQL Server คุณสามารถส่งพารามิเตอร์ไปยังโพรซีเดอร์ได้ แม้ว่าจะไม่ได้คืนค่าที่ระบุเป็นฟังก์ชันแต่บ่งชี้การดำเนินการที่สำเร็จหรือล้มเหลว
บทความนี้จะให้ตัวอย่างไวยากรณ์และตัวอย่างวิธีสร้างและลบขั้นตอนใน SQL Server
สร้างขั้นตอน
ไวยากรณ์
ในการสร้างขั้นตอนใน SQL Server เราใช้ไวยากรณ์ต่อไปนี้:
CREATE {PROCEDURE | PROC } [schema_name.]procedure_name PROC} [schema_name.] Procedure_name
[@parameter [type_schema_name.] datatype
[VARYING] [= default] [OUT | OUTPUT | READONLY]
, @parameter [type_schema_name.] datatype
[VARYING] [= default] [OUT | OUTPUT | READONLY]]
[WITH {ENCRYPTION | RECOMPILE | RECOMPILE | EXECUTE AS Clause } ] EXECUTE AS Clause}]
[FOR REPLICATION]
AS
BEGIN
[declaration_section]
executable_section
END;
พารามิเตอร์:
- schema_name:สคีมา ชื่อ (สคีมา) เป็นเจ้าของขั้นตอน
- procedure_name: ชื่อที่กำหนดสำหรับขั้นตอน
- @parameter: พารามิเตอร์อย่างน้อยหนึ่งรายการถูกส่งผ่านไปยังฟังก์ชัน
- type_schema_name: ชนิดข้อมูลของสคีมา (ถ้ามี)
- ประเภทข้อมูล: ชนิดข้อมูลสำหรับ @parameter
- ค่าเริ่มต้น: ค่าเริ่มต้นที่กำหนดให้กับ @parameter
- ออก / ผลลัพธ์: @parameter เป็นพารามิเตอร์เอาต์พุต
- อ่านอย่างเดียว: @parameter ไม่สามารถแทนที่ด้วยโพรซีเดอร์ได้
- การเข้ารหัส: ซอร์สโค้ดของขั้นตอนจะไม่ถูกจัดเก็บเป็นข้อความในระบบ
- เรียบเรียงใหม่: แบบสอบถามจะไม่ถูกแคช (แคช) สำหรับขั้นตอนนี้
- EXECUTE AS clause: ระบุบริบทความปลอดภัยเพื่อดำเนินการตามขั้นตอน
- สำหรับการจำลอง:The กระบวนการที่บันทึกไว้จะถูกดำเนินการระหว่างกระบวนการจำลองแบบเท่านั้น
ตัวอย่าง
CREATE PROCEDURE spNhanvien
@nhanvien_name VARCHAR (50) OUT
AS
BEGIN
DECLARE @nhanvien_id INT;
SET @nhanvien_id = 8;
IF @nhanvien_id <10
SET @nhanvien_name = 'Smith';
ELSE
SET @nhanvien_name = 'Lawrence';
END;
ขั้นตอนข้างต้นมีชื่อว่า spNhanvien มีพารามิเตอร์ของ @nhanvien_name, the เอาต์พุตของพารามิเตอร์จะขึ้นอยู่กับ @nhanvien_id.
หลังจากนั้น คุณสามารถดำเนินการ spNhanvien อ้างอิงดังนี้:
USE [test]
GO
DECLARE @site_name varchar (50);
EXEC FindSite @site_name OUT;
PRINT @site_name;
GO
ขั้นตอนการดร็อป
เมื่อคุณสร้างโพรซีเดอร์สำเร็จแล้ว ยังมีกรณีที่คุณต้องการลบโพรซีเดอร์ออกจากฐานข้อมูลด้วยเหตุผลบางประการ
ไวยากรณ์
หากต้องการลบขั้นตอน เรามีรูปแบบดังนี้:
DROP PROCEDURE procedure_name ;
พารามิเตอร์:
procedure_name:The ชื่อของขั้นตอนที่คุณต้องการลบ .
ตัวอย่าง
DROP PROCEDURE spNhanvien;
การดำเนินการคำสั่งนี้แสดงว่าคุณเพิ่งลบ spNhan ขั้นตอนจากฐานข้อมูล