FUNCTION (Hàm) trong SQL Server
Function trong SQL Server là gì? Cách dùng function SQL Server như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!
Function (Hàm) là một đối tượng trong cơ sở dữ liệu bao gồm một tập nhiều câu lệnh được nhóm lại với nhau và được tạo ra với mục đích sử dụng lại. Trong SQL Server, hàm được lưu trữ và bạn có thể truyền các tham số vào cũng như trả về các giá trị.
Bài viết sẽ cung cấp cho bạn cú pháp và những ví dụ về cách tạo và xóa bỏ function trong SQL Server.
CREATE FUNCTION (Tạo Function)
Cú pháp
Để tạo một function trong SQL Server, ta sử dụng cú pháp như dưới đây:
CREATE FUNCTION [schema_name.]function_name
( [ @parameter [ AS ] [type_schema_name.] datatype
[ = default ] [ READONLY ]
, @parameter [ AS ] [type_schema_name.] datatype
[ = default ] [ READONLY ] ]
)
RETURNS return_datatype
[ WITH { ENCRYPTION
| SCHEMABINDING
| RETURNS NULL ON NULL INPUT
| CALLED ON NULL INPUT
| EXECUTE AS Clause ]
[ AS ]
BEGIN
[declaration_section]
executable_section
RETURN return_value
END;
Tham số:
- schema_name: Tên schema (lược đồ) sở hữu function.
- function_name: Tên gán cho function.
- @parameter: Một hay nhiều tham số được truyền vào hàm.
- type_schema_name: Kiểu dữ liệu của schema (nếu có).
- Datatype: Kiểu dữ liệu cho @parameter.
- Default: Giá trị mặc định gán cho @parameter.
- READONLY: @parameter không thể bị function ghi đè lên.
- return_datatype: Kiểu dữ liệu của giá trị trả về.
- ENCRYPTION: Mã nguồn (source) của function sẽ không được lưu trữ dưới dạng text trong hệ thống.
- SCHEMABINDING: Đảm bảo các đối tượng không bị chỉnh sửa gây ảnh hưởng đến function.
- RETURNS NULL ON NULL INPUT: Hàm sẽ trả về NULL nếu bất cứ parameter nào là NULL.
- CALL ON NULL INPUT: Hàm sẽ thực thi cho dù bao gồm tham số là NULL.
- EXECUTE AS clause: Xác định ngữ cảnh bảo mật để thực thi hàm.
- return_value: Giá trị được trả về.
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;
Hàm trên được gán tên là fuNhanvien, có một tham số @nhanvien_id với kiểu dữ liệu INT. Hàm sẽ được trả về giá trị kiểu VARCHAR(50) khi thực hiện câu lệnh RETURNS.
Sau đó, bạn có thể thực hiện tham chiếu fuNhanvien như sau:
USE [test]
GO
SELECT dbo.fuNhanvien(8);
GO
Drop Function (Xóa bỏ Function)
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.
Cú pháp
Để xóa bỏ một function, ta có cú pháp sau:
DROP FUNCTION function_name;
Tham số:
function_name: Tên function bạn muốn xóa bỏ..
Ví dụ
DROP FUNCTION fuNhanvien;
Thực hiện lệnh này là bạn đã vừa xóa bỏ hàm fuNhanvien khỏi database.
SQL Server có sẵn nhiều hàm bao gồm chuỗi, số, ngày tháng, chuyển đổi và một số hàm nâng cao trong SQL Server. Một số hàm chuỗi nổi bật trong SQL Server:
Hàm | Công dụng |
Trả về giá trị ASCII cho ký tự cụ thể | |
Trả về ký tự dựa trên code ASCII | |
Trả về vị trí của chuỗi phụ trong một chuỗi | |
Thêm hai hoặc nhiều chuỗi hơn cùng nhau | |
Thêm cùng lúc từ hai chuỗi trở lên | |
Thêm từ hai chuỗi trở lên cùng nhau bằng một dấu phân tách | |
Trả về số byte được dùng để trình bày một biểu thức | |
So sánh hai giá trị SOUNDEX, và trả về một giá trị số nguyên | |
Định dạng một giá trị với số cụ thể | |
Trích xuất một số ký tự từ một chuỗi (bắt đầu từ bên trái) | |
Trả về độ dài của một chuỗi | |
Chuyển đổi một chuỗi sang chữ viết thường | |
Xóa khoảng trắng ở đầu chuỗi | |
Trả về ký tự Unicode dựa trên mã số | |
Trả về vị trí của một mẫu trong một chuỗi | |
Trả về chuỗi Unicode có dấu phân cách được thêm vào để biến chuỗi thành mã định danh được phân tách bằng SQL Server hợp lệ | |
Thay thế tất cả các lần xuất hiện của một chuỗi con trong một chuỗi bằng một chuỗi con mới |

Bạn nên đọc
