Output parameter là gì?
- ★
- ★
- ★
- ★
- ★
Về cơ bản, một tham số đầu ra (output parameter) đơn giản là giá trị được trả về (return) bởi hàm (function).
- ★
- ★
- ★
- ★
- ★
Trong cơ sở dữ liệu (database) cụ thể là trong stored procedure, các tham số đầu ra (output parameter) cho phép stored procedure truyền một giá trị dữ liệu hoặc một biến con trỏ (cursor variable) trở lại caller. Các hàm do người dùng định nghĩa (user-defined function) không thể chỉ định các tham số đầu ra (output parameter).
Tạo tham số đầu ra (output parameter) trong SQL Server
Để tạo một tham số đầu ra (output parameter) cho một stored procedure, bạn sử dụng cú pháp (syntax) sau:
parameter_name data_type OUTPUT
Một stored procedure có thể có nhiều tham số đầu ra (output parameter). Ngoài ra, các tham số đầu ra output parameter có thể ở bất kỳ kiểu dữ liệu (data type) hợp lệ nào, ví dụ: integer, date và varying character.
Ví dụ: stored procedure sau đây tìm sản phẩm theo model year và trả về số lượng sản phẩm thông qua tham số đầu ra (output parameter) @product_count:
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 stored procedure này:
Đầu tiên, chúng tôi tạo một tham số đầu ra (output paramete) có tên @product_count để lưu trữ số lượng sản phẩm được tìm thấy:
Thứ hai, sau câu lệnh SELECT, chúng tôi đã gán số hàng được trả về bởi truy vấn (query) (@@ ROWCOUNT) cho tham số @product_count.
Lưu ý rằng @@ ROWCOUNT là một biến hệ thống (system variable) trả về số hàng được đọc bởi câu lệnh trước đó.
Khi bạn thực thi câu lệnh CREATE PROCEDURE ở trên, stored procedure uspFindProductByModel được biên dịch (compile) và lưu trong database catalog.
Nếu mọi thứ đều ổn, SQL Server sẽ đưa ra kết quả sau:
Commands completed successfully.
Gọi các stored procedure với các tham số đầu ra (output parameter).
Để gọi một stored procedure với các tham số đầu ra (output parameter), bạn làm theo các bước sau:
- Đầu tiên, khai báo các biến (variable) để chứa các giá trị được trả về bởi các tham số đầu ra (output parameter).
- Thứ hai, sử dụng các biến này trong lời gọi (call) stored procedure.
Ví dụ: câu lệnh sau thực thi stored procedureuspFindProductByModel:
DECLARE @count INT;
EXEC uspFindProductByModel
@model_year = 2018,
@product_count = @count OUTPUT;
SELECT @count AS 'Number of products found';
Hình ảnh sau đây cho thấy kết quả đầu ra (output):
Trong ví dụ này:
Đầu tiên, khai báo biến @count để chứa giá trị của tham số đầu ra (output parameter) của stored procedure:
DECLARE @count INT;
Sau đó, thực thi stored procedure uspFindProductByModel và truyền các tham số (parameter):
EXEC uspFindProductByModel
@model_year = 2018,
@product_count = @count OUTPUT;
Trong câu lệnh này, model_year là 2018 và biến @count gán (assign) giá trị của tham số đầu ra (output parameter) @product_count.
Lưu ý rằng nếu bạn quên từ khóa OUTPUT sau biến @count, thì biến @count sẽ là NULL.
Cuối cùng, hiển thị giá trị của biến @count:
SELECT @count AS 'Number of products found';
Learning English Everyday