Bài này bạn sẽ được học cách sử dụng tham số OUTPUT trong procedure, nhiệm vụ của nó là thiết lập giá trị sẽ được trả về khi gọi đến một chương trình stored procedure.
1. Tạo tham số OUTPUT
Để tạo một tham số OUTPUT thì bạn vẫn sử dụng cách tạo như một tham số bình thường, có điều là bạn phải thêm từ khóa OUTPUT
vào vị trí cuối cùng của khai báo.
parameter_name data_type OUTPUT
Mỗi stored procedure có thể có một hoặc nhiều tham số OUTPUT, và bạn có thể chọn kiểu dữ liệu bất kì như: varchar, nvachar, int, date, …
Bài viết này được đăng tại [kiso.vn]
Hay xem ví dụ dưới đây, mình tạo một procedure có tên là uspFindProductByModel
với hai tham số đầu vào, trong đó có một tham số là OUTPUT dùng để trả tổng số sản phẩm.
CREATE PROCEDURE uspFindProductByModel ( @model_year SMALLINT, @product_count INT OUTPUT ) AS BEGIN SELECT product_name, list_price FROM production.products WHERE model_year = @model_year; SELECT @product_count = @@ROWCOUNT; END;
Trong đó;
@@ROWCOUNT
là biến toàn cục lưu trữ tổng số record trả vềSELECT @product_count = @@ROWCOUNT;
là gán tổng số record vào tham số OUTPUT
2. Gọi Stored Procedure với tham số OUTPUT
Bạn đã biết cách tạo rồi, bây giờ bạn cần biết thêm cách gọi nữa.
Vì tham số OUPUT có dạng tham chiếu nên bạn phải khai báo một biến trước, sau đó truyền nó vào procedure, khi chạy procedure xong thì giá trị của biến đó sẽ phụ thuộc vào nội dung bên trong của procedure.
Hãy xem ví dụ dưới đây để hiểu rõ hơn.
DECLARE @count INT; EXEC uspFindProductByModel @model_year = 2018 @product_count = @count; SELECT @count AS 'Number of products found';
Nếu mọi thứ OK thì khi chạy chương trình này bạn sẽ nhận được kết quả như hình sau:
Như vậy là trong bài này bạn đã được học cách sử dụng tham số OUTPUT trong SQL Server, kiểu tham số này được sử dụng rất nhiều nên bạn cần hiểu rõ về nó nhé.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Tạo tham số OUTPUT2. Gọi Stored Procedure với...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Tạo tham số OUTPUT2. Gọi Stored Procedure với tham số OUTPUT1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một firewall được phát...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Tạo tham số OUTPUT2. Gọi Stored Procedure với tham số OUTPUTV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web sử dụng đường...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Tạo tham số OUTPUT2. Gọi Stored Procedure với tham số OUTPUTV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng các hàm đọc...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Tạo tham số OUTPUT2. Gọi Stored Procedure với tham số OUTPUTIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất hiện các lỗ...