Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để chuyển một danh sách dưới dạng tham số trong một thủ tục được lưu trữ?

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thêm chuỗi có giá trị tăng tự động trong SQL Server?

  2. MS SQL Server trên Linux và Windows Kiểm tra hiệu suất để phát hiện sự khác biệt

  3. các thủ tục được lưu trữ với sqlAlchemy

  4. Cách tạo cơ sở dữ liệu trong SQL Server

  5. TẠO BẢNG NẾU KHÔNG TỒN TẠI tương đương trong SQL Server