Hàm do người dùng định nghĩa (scalar)

Viết Hàm và Thủ Tục Lưu Trữ trong SQL Server

Meghan Kwartler

IT Consultant

Hàm do người dùng định nghĩa (UDF)

Là gì?

Thủ tục có thể:

  • Nhận tham số đầu vào
  • Thực hiện một hành động
  • Trả về kết quả (một giá trị scalar hoặc bảng)

Vì sao?

  • Giảm thời gian thực thi
  • Giảm lưu lượng mạng
  • Hỗ trợ lập trình mô-đun
Viết Hàm và Thủ Tục Lưu Trữ trong SQL Server

Lập trình mô-đun là gì?

  • Kỹ thuật thiết kế phần mềm
  • Tách chức năng thành các mô-đun độc lập, có thể thay thế
  • Cho phép tái sử dụng mã
  • Cải thiện khả năng đọc mã
Viết Hàm và Thủ Tục Lưu Trữ trong SQL Server

Các hàm trong công thức nấu ăn

Chương Hai Công thức cho lập trình mô-đun4.jpg

Viết Hàm và Thủ Tục Lưu Trữ trong SQL Server

Tham số đầu vào của hàm nướng (Bake)

Chương Hai Công thức cho lập trình mô-đun3.jpg

Viết Hàm và Thủ Tục Lưu Trữ trong SQL Server

UDF scalar không có tham số đầu vào

-- Scalar function with no input parameters
CREATE FUNCTION GetTomorrow()
    RETURNS date AS BEGIN
RETURN (SELECT DATEADD(day, 1, GETDATE()))
END
Viết Hàm và Thủ Tục Lưu Trữ trong SQL Server

UDF scalar với một tham số

-- 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;
Viết Hàm và Thủ Tục Lưu Trữ trong SQL Server

UDF scalar với hai tham số đầu vào

-- 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;
Viết Hàm và Thủ Tục Lưu Trữ trong SQL Server

Đến lượt bạn tạo UDF!

Viết Hàm và Thủ Tục Lưu Trữ trong SQL Server

Preparing Video For Download...