Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

PROCEDURE (ขั้นตอน) ใน SQL Server

ขั้นตอน เป็นโปรแกรมในฐานข้อมูลของหลายคำสั่งที่คุณบันทึกเพื่อใช้ในภายหลัง ใน 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;

พารามิเตอร์:

  1. schema_name:สคีมา ชื่อ (สคีมา) เป็นเจ้าของขั้นตอน
  2. procedure_name: ชื่อที่กำหนดสำหรับขั้นตอน
  3. @parameter: พารามิเตอร์อย่างน้อยหนึ่งรายการถูกส่งผ่านไปยังฟังก์ชัน
  4. type_schema_name: ชนิดข้อมูลของสคีมา (ถ้ามี)
  5. ประเภทข้อมูล: ชนิดข้อมูลสำหรับ @parameter
  6. ค่าเริ่มต้น: ค่าเริ่มต้นที่กำหนดให้กับ @parameter
  7. ออก / ผลลัพธ์: @parameter เป็นพารามิเตอร์เอาต์พุต  
  8. อ่านอย่างเดียว: @parameter ไม่สามารถแทนที่ด้วยโพรซีเดอร์ได้
  9. การเข้ารหัส: ซอร์สโค้ดของขั้นตอนจะไม่ถูกจัดเก็บเป็นข้อความในระบบ
  10. เรียบเรียงใหม่: แบบสอบถามจะไม่ถูกแคช (แคช) สำหรับขั้นตอนนี้
  11. EXECUTE AS clause: ระบุบริบทความปลอดภัยเพื่อดำเนินการตามขั้นตอน
  12. สำหรับการจำลอง: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 ขั้นตอนจากฐานข้อมูล