08/11/2019, 14:14

[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:

  1. Scalar Function => Trả về một giá trị duy nhất (Single Value)
  2. 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:

order_items

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

SQL-Server-Scalar-Function

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ề:

SQL-Server-Scalar-Function-example

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:

  1. Scalar Function có thể sử dụng trong các câu lệnh truy vấn T-SQL.
  2. 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).
  3. Có thể sử dụng cấu trúc rẻ nhánh IF, và vòng lặp WHILE trong hàm.
  4. Trong Scalar không cho phép chúng ta sử dụng từ khóa UPDATE để cập nhật dữ liệu.
  5. Scalar function có thể được gọi lại để sử dụng trong các function khác.

Thanks for watching!

Tags: scalar function sqlscalar function trong sql
0