bảng (TABLE). Tuỳ theo việc khai báo nội dung của table – value funtion, ta chia thành 2 loại
+ inline function: phần thân của hàm chỉ có duy nhất một câu
lệnh RETURN
+ multi-stament function: phần thân hàm có nhiều câu lệnh
Scalar Function:
› Cú pháp:
CREATE FUNCTION [tên_người_sở_hữu]. tên_function ([danh_sách_tham_số])
RETURNS (kiểu_trả_về_của_hàm)
[WITH SCHEMABINDING| ENCRYPTION | SCHEMABINDING,ENCRYPTION] SCHEMABINDING,ENCRYPTION] AS BEGIN nội_dung_thân_hàm RETURN biến_trả_về END
tên_người_sở_hữu Tên của user khai báo hàm hoặc tên
database chứa hàm
tên_function Tên của function, yêu cầu thoả các quy tắc
định danh và là duy nhất trong database
danh_sách_tham_số
Nếu Function có nhiều hơn 2 tham số thì mỗi tham số cách nhau bởi dấu phẩy và được khai báo theo cú pháp sau :
@tên_tham_số kiểu_dữ_liệu
kiểu_trả_về_của_hàm
Một loại dữ liệu bất kỳ được SQL Server hỗ trợ: int, nvarchar, datetime …. ngoại trừ các kiểu dữ liệu sau: text, ntext, image, timestamp
nội_dung_thân_hàm
Tập hợp các câu lệnh được sử dụng trong Functions. Hỗ trợ hầu hết các câu lệnh T-SQL như Stored Procedure
biến_trả_về biến được khai báo trong phần thân của hàm
với kiểu dữ liệu là kiểu_trả_về_của_hàm Các tham số cơ bản
WITH
ENCRYPTION SQL server sẽ mã hoá nội dung của function
WITH
SCHEMABINDING
Tùy chọn này làm cho funtion có sự ràng buộc (bound) với đối tượng nó đang tham chiếu trong CSDL.Khi tùy chọn SCHEMABINDING được kích hoạt, đối tượng mà funtion tham chiếu tới không thể bị sửa đổi (thông qua cú pháp ALTER) hoặc xóa bỏ (thơng qua cú pháp DROP)
Sự ràng buộc này chỉ được hủy bỏ nếu xảy ra một trong hai hành động sau:
+ Xóa bỏ function
+ Tắt tùy chọn SCHEMABINDING của function
// một số trường hợp cho thấy với tùy chọn SCHEMABINDING được bật sẵn sẽ làm cho truy vấn của hàm trả về với kết quả nhanh hơn