Thứ Ba, 25 tháng 7, 2023

Tham số OUTPUT của Stored Procedure trong SQL Server

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.

Mục lục

  • 1. Tạo tham số OUTPUT
  • 2. Gọi Stored Procedure với tham số OUTPUT

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.

1
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, ...

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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.

1
2
3
4
5
6
7
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:

SQL Server Stored Procedure Output Parameter Example png

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é.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master