Giới Thiệu FUNCTION Trong SQL Server
Có thể bạn quan tâm
Trong phần này chúng ta sẽ tìm hiểu đến function trong SQL Server, đây là chức năng giúp ta gom các câu lệnh SQL thành một nhóm và có thể sử dụng lại nhiều lần.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.Lưu ý: function hai còn gọi là hàm.
1. Function trong SQL Server là gì?
Nếu nói đến gom nhóm và sử dụng nhiều lần thì stored procedure cũng làm được, tuy nhiên procedure sẽ không có giá trị trả về, còn function thì sẽ có giá trị trả về. SQL Server cũng có rất nhiều hàm có sẵn như hàm nối chuỗi (concat), hàm tính giá trị căn bậc hai (sqrt).
Các hàm sẽ giúp đơn giản hóa chương trình và có thể sử dụng nhiều lần. Ví dụ bạn cần viết một loạt các câu lệnh SQL phức tạp lên đến hàng ngàn dòng thì có thể phân tích và chia nhỏ thành nhiều hàm
Bài viết này được đăng tại [free tuts .net]
Cú pháp tạo hàm như sau:
CREATE FUNCTION function_name (parameter_list) RETURN data_type AS BEGIN statements RETURN value END
Trong đó:
- function_name là tên của function
- parameter_list là danh sách các tham số truyền vào function
- RETURN data_type AS là xác định kiểu dữ liệu mà function sẽ trả về
- statements là danh sách các lệnh SQL
- RETURN value là giá trị sẽ được trả về.
Trong ví dụ dưới đây là một function có chức năng tính tổng của hai số.
CREATE FUNCTION tinh_tong( @a INT, @b INT ) RETURNS INT AS BEGIN RETURN @a * @b; END;
Hoặc dựa vào database mẫu mình viết một function như sau:
CREATE FUNCTION sales.udfNetSale( @quantity INT, @list_price DEC(10,2), @discount DEC(4,2) ) RETURNS DEC(10,2) AS BEGIN RETURN @quantity * @list_price * (1 - @discount); END;
Hàm này sẽ tính giá của một sản phẩm sau khi được giảm.
Sau khi chạy khởi tạo hàm này thì bạn sẽ thấy nó trong SSMS bằng cách click vào Programmability > Functions > Scalar-valued Functions.
2. Cách gọi function trong SQL Server
Về cách dùng thì cũng như các hàm có sẵn của SQL Server, bạn chỉ cần gọi tên và truyền tham số vào (nếu có).
SELECT tinh_tong(10, 20) tong
Hoặc bạn thử chạy hàm thứ hai ở trên trong database mẫu;
SELECT sales.udfNetSale(10,100,0.1) net_sale
Thì kết quả sẽ như hình sau:
Bây giờ hãy áp dụng nó vào câu lệnh select để hiện thị giá cho mỗi sản phẩm nằm trong table order_items.
SELECT order_id, SUM(sales.udfNetSale(quantity, list_price, discount)) net_amount FROM sales.order_items GROUP BY order_id ORDER BY net_amount DESC;
Kết quả sẽ như hình sau:
3. Sửa function trong SQL Server
Tương tự như Stored Procedure, để chỉnh sửa function thì bạn sử dụng cú pháp sau:
ALTER FUNCTION [schema_name.]function_name (parameter_list) RETURN data_type AS BEGIN statements RETURN value END
Nội dung mới của function sẽ thay thế nội dung cũ. Lệnh nay chỉ sửa được với những function mà do chính bạn tạo ra thôi nhé, không thể sửa các function có sẵn như count, concat.
4. Xóa function trong SQL Server
Để xóa một function nào đó thì bạn sử dụng lệnh DROP FUNCTION với cấu trúc như sau:
DROP FUNCTION [schema_name.]function_name;
Ví dụ mình muốn xóa function đã tạo ở trên thì chạy lệnh sau:
DROP FUNCTION sales.udfNetSale;
Tương tự, bạn chỉ có thể xóa function do bạn tự tạo.
Một vài lưu ý khác
Mỗi function có thể sử dụng ở bất cứ đâu trong câu lệnh T-SQL và nằm trong phạm vi database.
Có thể có nhiều tham số, tuy nhiên chỉ trả về được một giá trị duy nhất, bắt buộc phải return.
Có thể sử dụng mọi câu lệnh T-SQL bên trong function.
Function này có thể sử dụng function khác
Từ khóa » Câu Lệnh Function Trong Sql
-
FUNCTION (Hàm) Trong SQL Server
-
Function Người Dùng Tự định Nghĩa Trong SQL - Viblo
-
SQL Server: FUNCTION (Hàm) Tự Tạo Trong SQL Server | V1Study
-
CREATE FUNCTION - Lệnh Tạo Hàm - SQL & Database
-
Function Trong SQL Server | How Kteam
-
Function Trong SQL Server: Hướng Dẫn Từ A-Z Về Function | Comdy
-
Bài 42: SQL Function - TEDU
-
Bài 9: Các Function Thông Dụng Trong SQL Server - VnCoder
-
Function Trong SQL Server: Hướng Dẫn Từ A-Z Về ...
-
Hệ Quản Trị SQL Server - FUNCTION (Hàm)
-
Bài Tập Về Function Trong Sql - Bác Sĩ Xanh
-
Hàm Do Người Dùng định Nghĩa (User Defined Function-UDF) Trong ...
-
Cách Sử Dụng Function Trong Sql Server
-
Tạo Function Trong Sql Servre | Giải đề SQL Đề 9 Câu 3 - YouTube