[DATABASE] Hướng dẫn tạo Scalar Function trong sqlserver
Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách tạo và sử dụng Scalar Function trong Sqlserver . Trong Function của Sqlserver được chia làm hai loại: Scalar Function => Trả về một giá trị duy nhất (Single Value) Table ...
Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách tạo và sử dụng Scalar Function trong Sqlserver.
Trong Function của Sqlserver được chia làm hai loại:
- Scalar Function => Trả về một giá trị duy nhất (Single Value)
- Table Function => Trả về một bảng Table
Cú pháp tạo hàm Scalar Function sql:
CREATE FUNCTION [schema_name.]function_name (parameter_list) RETURNS data_type AS BEGIN statements RETURN value END
+ Chúng ta sẽ sử dụng từ khóa CREATE FUNCTION để tạo một function trong sql
+ Truyền tham số parameter (nếu có)
+ Chỉ định kiểu dữ liệu trả về (int, varchar(), float...) trong từ khóa RETURNS
+ Và cuối cùng là sử dụng từ khóa RETURN để trả giá trị của kết quả về.
Bây giờ, mình sẽ viết một hàm ví dụ tính Doanh thu dựa trên số lượng, giá niêm yết và chiết khấu cho sản phẩm 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;
Chúng ta có bảng Table sales.order_items sau:
Sau khi, các bạn chạy lệnh trên để tạo function xong, các bạn vào đường sau trong Sqlserver Management Studio để xem function vừa tạo theo đường dẫn sau:
Programmability > Functions > Scalar-valued Functions
Và cách gọi hàm để sử dụng như sau:
SELECT sales.udfNetSale(10,100,0.1) net_sale;
Và dưới đây là kết quả trả về:
Chỉnh sửa Scalar Function chúng ta sẽ sử dụng từ khóa ALTER FUNCTION.
Nếu các bạn muốn tích hợp sẵn, nếu chưa có function chúng ta sẽ sử dụng từ khóa CREATE và nếu có rồi chúng ta sẽ sử dụng từ khóa ALTER.
Cấu trúc chỉnh sửa SQL:
CREATE OR ALTER FUNCTION [schema_name.]function_name (parameter_list) RETURN data_type AS BEGIN statements RETURN value END
Cách Xóa Scalar Function SQL:
Đế xóa một Function chúng ta sẽ sử dụng từ khóa DROP FUNCTION
DROP FUNCTION [schema_name.]function_name;
Những chú ý khi chúng ta sử dụng Sacalar Function SQL:
- Scalar Function có thể sử dụng trong các câu lệnh truy vấn T-SQL.
- Cho phép một hoặc nhiều tham số (parameter) truyền vào nhưng giá trị trả về chỉ một giá trị (Single Value).
- Có thể sử dụng cấu trúc rẻ nhánh IF, và vòng lặp WHILE trong hàm.
- Trong Scalar không cho phép chúng ta sử dụng từ khóa UPDATE để cập nhật dữ liệu.
- Scalar function có thể được gọi lại để sử dụng trong các function khác.
Thanks for watching!