You are on page 1of 5

FUNCTION (HÀM)

Function trong SQL Server là gì?


SQL Server là một trong số kiến thức lập trình mà bạn nhất định phải biết nếu
muốn quản trị cơ sở dữ liệu tốt khi phát triển sản phẩm hay dự án. Trong đó,
function SQL Server rất quan trọng.

Function trong SQL Server là các đối tượng database chứa một nhóm lệnh
SQL để triển khai một nhiệm vụ cụ thể. Một hàm chấp nhận các tham số đầu
vào, thực thi hành động, sau đó trả về kết quả.

Trong Transact-SQL (T-SQL), hàm là một khối lệnh hoặc một tập hợp các lệnh
được đặt tên và có thể được gọi lại từ các câu truy vấn hoặc các phần khác của
T-SQL. Có hai loại chính của hàm trong T-SQL:
1. Hàm Xây dựng Sẵn (Built-in Functions): Đây là các hàm được cung cấp sẵn
bởi hệ thống SQL Server. Các hàm này thường được sử dụng để thực hiện các
tác vụ phổ biến như xử lý chuỗi, chuyển đổi kiểu dữ liệu, tính toán và nhiều tác
vụ khác. Ví dụ bao gồm hàm `LEN()`, `CONCAT()`, `GETDATE()`, `SUM()`, vv.
2. Hàm Tự Định Nghĩa (User-Defined Functions): Đây là các hàm được tạo ra
bởi người dùng để thực hiện các tác vụ cụ thể mà không được cung cấp sẵn bởi
SQL Server. Có hai loại hàm tự định nghĩa:
a. Hàm Inline Table-Valued Functions (ITVF): Trả về một bảng giống như một
tập hợp kết quả. Chúng thường được sử dụng như một phần của một câu truy
vấn SELECT.
b. Hàm Scalar User-Defined Functions (UDF): Trả về một giá trị duy nhất.
Chúng có thể được sử dụng trong một câu truy vấn SELECT hoặc bất kỳ nơi nào
một giá trị có thể được sử dụng.
Quy tắc của hàm ?
Bạn cần ghi nhớ rằng hàm đó luôn trả về một giá trị đơn lẻ hoặc một bảng. Mục
đích chính của hàm này là tái tạo nhiệm vụ chung dễ dàng. Bạn có thể xây dựng
các hàm một lần và dùng chúng ở nhiều vị trí dựa theo nhu cầu. SQL Server
không cho phép sử dụng các hàm để chèn, xóa hoặc update bản ghi trong bảng
cơ sở dữ liệu.

Dưới đây là một số quy tắc cơ bản khi tạo hàm trong Transact-SQL (T-SQL):

1. Tên hàm phải duy nhất và mô tả chính xác chức năng của nó: Tên của hàm
nên phản ánh rõ ràng về chức năng hoặc mục đích của nó. Đảm bảo rằng tên
hàm là duy nhất trong cơ sở dữ liệu của bạn. Tên không thể bắt đầu bằng một
ký tự đặc biệt như @, $, # hoặc ký tự tương tự khác.

2. Xác định kiểu hàm: Xác định rõ liệu hàm của bạn sẽ là một hàm scalar, inline
table-valued function (ITVF), hoặc multi-statement table-valued function
(MSTVF).

3. Định nghĩa tham số đầu vào: Xác định và đặt tên cho các tham số đầu vào
của hàm. Đảm bảo rằng các tham số được đặt tên một cách rõ ràng và có kiểu
dữ liệu phù hợp.

4. Đảm bảo tính nguyên tắc của hàm: Hàm nên tuân thủ nguyên tắc "Single
Responsibility", tức là mỗi hàm chỉ nên thực hiện một chức năng duy nhất và
phản ánh được nhiệm vụ cụ thể.

5. Kiểm tra ràng buộc và kiểu dữ liệu: Kiểm tra và đảm bảo rằng ràng buộc và
kiểu dữ liệu của các tham số và kết quả của hàm là đúng.

6. Tối ưu hiệu suất: Đảm bảo rằng hàm được viết để có hiệu suất tốt nhất có thể.
Tránh sử dụng các câu lệnh có hiệu suất kém hoặc lặp lại trong hàm.

7. Tài liệu hóa hàm: Cung cấp tài liệu chi tiết cho mỗi hàm bạn viết, bao gồm mô
tả của chức năng của hàm, các tham số đầu vào và kết quả trả về.
8. Kiểm thử: Kiểm tra kỹ lưỡng các hàm trước khi triển khai chúng vào môi
trường sản xuất. Đảm bảo rằng chúng hoạt động như mong đợi và xử lý các tình
huống đặc biệt.

Tuân thủ các quy tắc trên sẽ giúp bạn viết các hàm trong T-SQL một cách hiệu
quả, dễ bảo trì và có hiệu suất tốt.

CREATE FUNCTION (TẠO HÀM)


Dưới đây là cú pháp tổng quát để tạo một hàm trong SQL Server:

CREATE FUNCTION [schema_name.]function_name


(
-- Định nghĩa các tham số đầu vào của hàm (nếu có)
@parameter1 datatype,
@parameter2 datatype
)
RETURNS return_data_type
AS
BEGIN
-- Khối lệnh của hàm
-- Thực hiện các tác vụ xử lý dữ liệu và tính toán
-- Trả về kết quả cuối cùng
RETURN result;
END;

Giải thích các thành phần:


- schema_name: Tên của schema nơi hàm được tạo. Mặc định là `dbo` nếu
không được chỉ định.

- function_name: Tên của hàm.

- @parameter1, @parameter2: Các tham số đầu vào của hàm (nếu có). Mỗi
tham số được định nghĩa bởi tên và kiểu dữ liệu.

- return_data_type: Kiểu dữ liệu của kết quả trả về của hàm.

- AS: Từ khóa đánh dấu phần bắt đầu của khối lệnh của hàm.

- BEGIN...END: Khối lệnh của hàm, nơi bạn định nghĩa các công việc và tính
toán cần thực hiện.

- RETURN: Câu lệnh trả về kết quả của hàm.

Ví dụ:

CREATE FUNCTION dbo.MyFunction


(
@param1 INT,
@param2 INT
)
RETURNS INT
AS
BEGIN
DECLARE @result INT;
SET @result = @param1 + @param2;
RETURN @result;
END;

Hàm trên là một ví dụ đơn giản về cách tạo một hàm trong SQL Server. Hàm này
nhận hai tham số đầu vào kiểu INT và trả về tổng của chúng.

Drop Function (Xóa bỏ Hàm)


Một khi đã tạo thành công các function thì cũng sẽ có những trường hợp bạn
muốn xóa bỏ function khỏi cơ sở dữ liệu vì một vài lý do.

DROP FUNCTION function_name;


Ví dụ :
DROP FUNCTION fuNhanvien;
Thực hiện lệnh này có nghĩa là bạn xóa hàm fuNhanvien khỏi database.

You might also like