Phương pháp ưa thích để chuyển một mảng giá trị tới một thủ tục được lưu trữ trong máy chủ SQL là sử dụng các tham số có giá trị của bảng.
Đầu tiên, bạn xác định kiểu như thế này:
CREATE TYPE UserList AS TABLE ( UserID INT );
Sau đó, bạn sử dụng kiểu đó trong thủ tục được lưu trữ:
create procedure [dbo].[get_user_names]
@user_id_list UserList READONLY,
@username varchar (30) output
as
select last_name+', '+first_name
from user_mstr
where user_id in (SELECT UserID FROM @user_id_list)
Vì vậy, trước khi bạn gọi thủ tục được lưu trữ đó, bạn điền vào một biến bảng:
DECLARE @UL UserList;
INSERT @UL VALUES (5),(44),(72),(81),(126)
Và cuối cùng gọi SP:
EXEC dbo.get_user_names @UL, @username OUTPUT;