Mô tả
Function (Hàm) là đối tượng database chứa tập câu lệnh SQL nhóm lại để tái sử dụng. Có tham số đầu vào và trả về giá trị (scalar hoặc table).
Tạo Function (CREATE FUNCTION)
CREATE FUNCTION [schema_name.] ten_ham
(@tham_so [AS] [schema_kieu.] kieu_du_lieu [= mac_dinh] [READONLY], ...)
RETURNS kieu_tra_ve
[WITH {ENCRYPTION | SCHEMABINDING | RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT | EXECUTE AS Clause}]
[AS]
BEGIN
-- khai báo biến
-- phần thực thi
RETURN gia_tri_tra_ve;
END;
Tham số chính:
- schema_name: Schema chứa hàm.
- ten_ham: Tên hàm.
- @tham_so: Tham số đầu vào.
- kieu_du_lieu: Kiểu dữ liệu tham số.
- kieu_tra_ve: Kiểu dữ liệu trả về.
- ENCRYPTION: Mã hóa mã nguồn hàm.
- SCHEMABINDING: Ràng buộc schema, không cho sửa đối tượng liên quan.
- RETURNS NULL ON NULL INPUT: Tự trả NULL nếu tham số NULL.
- CALLED ON NULL INPUT: Vẫn chạy khi tham số NULL (mặc định).
Ví dụ
CREATE FUNCTION fuNhanvien
(@nhanvien_id INT)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @nhanvien_name VARCHAR(50);
IF @nhanvien_id < 10
SET @nhanvien_name = 'Smith';
ELSE
SET @nhanvien_name = 'Lawrence';
RETURN @nhanvien_name;
END;
Gọi hàm
USE [test];
GO
SELECT dbo.fuNhanvien(8);
GO
Xóa Function (DROP FUNCTION)
DROP FUNCTION ten_ham;
DROP FUNCTION fuNhanvien;