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.
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 [free tuts .net]
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é.