Stored procedures

การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

Meghan Kwartler

IT Consultant

Stored procedure คืออะไร?

คืออะไร?

รูทีนที่

  • รับพารามิเตอร์อินพุต
  • ดำเนินการ (EXECUTE SELECT, INSERT, UPDATE, DELETE และคำสั่ง SP อื่น ๆ)
  • คืนสถานะ (สำเร็จหรือล้มเหลว)
  • คืนพารามิเตอร์เอาต์พุต
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

ทำไมต้องใช้ stored procedures?

ทำไมต้องใช้?

  • ช่วยลดเวลาในการรัน
  • ช่วยลด network traffic
  • รองรับการเขียนโปรแกรมแบบโมดูลาร์
  • เพิ่มความปลอดภัย
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

UDFs กับ SPs ต่างกันอย่างไร?

UDFs

  • ต้องคืนค่าเสมอ
    • อนุญาตให้คืนค่าเป็นตาราง
  • ฝัง SELECT เพื่อเรียกใช้ได้
  • ไม่มีพารามิเตอร์เอาต์พุต
  • ไม่รองรับ INSERT, UPDATE, DELETE
  • เรียก SP ไม่ได้
  • ไม่มีการจัดการข้อผิดพลาด

SPs

  • การคืนค่าเป็นตัวเลือก
    • ไม่อนุญาตให้คืนค่าเป็นตาราง
  • ฝังใน SELECT เพื่อเรียกใช้ไม่ได้
  • คืนพารามิเตอร์เอาต์พุตและสถานะได้
  • รองรับ INSERT, UPDATE, DELETE
  • เรียกใช้ฟังก์ชันและ SP ได้
  • จัดการข้อผิดพลาดด้วย TRY...CATCH
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

CREATE PROCEDURE พร้อมพารามิเตอร์ OUTPUT

-- First four lines of code
-- SP name must be unique 
CREATE PROCEDURE dbo.cuspGetRideHrsOneDay 
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
.......
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

CREATE PROCEDURE พร้อมพารามิเตอร์ OUTPUT

CREATE PROCEDURE dbo.cuspGetRideHrsOneDay
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
SET NOCOUNT ON
BEGIN
SELECT 
  @RideHrsOut = SUM(
    DATEDIFF(second, PickupDate, DropoffDate)
  )/ 3600
FROM YellowTripData
WHERE CONVERT(date, PickupDate) = @DateParm
RETURN
END;
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

พารามิเตอร์เอาต์พุต vs. ค่าที่คืนกลับ

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

  • เป็นชนิดข้อมูลใดก็ได้
  • ประกาศได้หลายตัวใน SP เดียว
  • ไม่สามารถเป็น table-valued parameter ได้

ค่าที่คืนกลับ

  • ใช้ระบุว่าสำเร็จหรือล้มเหลว
  • เป็นชนิดข้อมูล integer เท่านั้น
  • 0 หมายถึงสำเร็จ ค่าอื่นหมายถึงล้มเหลว
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

พร้อมแล้วสำหรับการ CREATE PROCEDUREs!

การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

Preparing Video For Download...