HÀM (FUNCTION) TRONG MICROSOFT SQL SERVER
SQL Server hỗ trợ 3 loại hàm chính:
1. Scalar Function (Hàm vô hướng)
- Trả về một giá trị duy nhất
- Thường dùng trong SELECT, WHERE, HAVING,...
Ví dụ:
CREATE FUNCTION fn_TinhTuoi (@NamSinh INT)
RETURNS INT
AS
BEGIN
RETURN YEAR(GETDATE()) - @NamSinh
END
Sử dụng:
SELECT dbo.fn_TinhTuoi(2000) AS Tuoi
2. Inline Table-Valued Function (Hàm bảng dạng inline)
- Trả về một bảng
- Không có BEGIN...END
- Hiệu năng tốt hơn multi-statement
Ví dụ:
CREATE FUNCTION fn_DanhSachSinhVien (@LopID INT)
RETURNS TABLE
AS
RETURN
(
SELECT *
FROM SinhVien
WHERE LopID = @LopID
)
Sử dụng:
SELECT * FROM fn_DanhSachSinhVien(1)
3. Multi-statement Table-Valued Function
- Trả về bảng nhưng dùng nhiều câu lệnh
- Có thể xử lý logic phức tạp
Ví dụ:
CREATE FUNCTION fn_LocSinhVien (@Diem FLOAT)
RETURNS @KetQua TABLE (
MaSV INT,
TenSV NVARCHAR(100),
Diem FLOAT
)
AS
BEGIN
INSERT INTO @KetQua
SELECT MaSV, TenSV, Diem
FROM SinhVien
WHERE Diem >= @Diem
RETURN
END

