Scalar user defined functions

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

Meghan Kwartler

IT Consultant

User defined functions (UDFs)

คืออะไร?

รูทีนที่

  • รับพารามิเตอร์อินพุตได้
  • ประมวลผลบางอย่าง
  • คืนค่าผลลัพธ์ (ค่า scalar เดียวหรือตาราง)

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

  • ลดเวลาการประมวลผล
  • ลด network traffic
  • รองรับ Modular Programming
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

Modular programming คืออะไร?

  • เทคนิคการออกแบบซอฟต์แวร์
  • แยกฟังก์ชันการทำงานออกเป็นโมดูลอิสระที่ใช้แทนกันได้
  • ใช้โค้ดซ้ำได้
  • ทำให้โค้ดอ่านง่ายขึ้น
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

ฟังก์ชันในสูตรอาหาร

ตัวอย่างสูตรอาหารสำหรับ Modular programming

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

พารามิเตอร์อินพุตของฟังก์ชัน Bake

พารามิเตอร์อินพุตของฟังก์ชัน Bake

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

Scalar UDF แบบไม่มีพารามิเตอร์อินพุต

-- Scalar function with no input parameters
CREATE FUNCTION GetTomorrow()
    RETURNS date AS BEGIN
RETURN (SELECT DATEADD(day, 1, GETDATE()))
END
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

Scalar UDF แบบมีพารามิเตอร์อินพุตหนึ่งตัว

-- Scalar function with one parameter
CREATE FUNCTION GetRideHrsOneDay (@DateParm date)
    RETURNS numeric AS BEGIN
RETURN (
  SELECT 
    SUM(
      DATEDIFF(second, PickupDate, DropoffDate)
    )/ 3600 
  FROM 
    YellowTripData 
  WHERE 
    CONVERT (date, PickupDate) = @DateParm
) END;
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

Scalar UDF แบบมีพารามิเตอร์อินพุตสองตัว

-- Scalar function with two input parameters
CREATE FUNCTION GetRideHrsDateRange (
  @StartDateParm datetime, @EndDateParm datetime
) RETURNS numeric AS BEGIN RETURN (
  SELECT 
    SUM(
      DATEDIFF(second, PickupDate, DropOffDate)
    )/ 3600 
  FROM YellowTripData 
  WHERE 
    PickupDate > @StartDateParm 
    AND DropoffDate < @EndDateParm
) END;
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

ถึงตาสร้าง UDFs กันแล้ว!

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

Preparing Video For Download...