sql >> Databáze >  >> RDS >> Sqlserver

Jak předám seznam jako parametr v uložené proceduře?

Preferovanou metodou pro předávání pole hodnot do uložené procedury na serveru SQL je použití parametrů s hodnotou tabulky.

Nejprve definujete typ takto:

CREATE TYPE UserList AS TABLE ( UserID INT );

Potom tento typ použijete v uložené proceduře:

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)

Než tedy zavoláte tuto uloženou proceduru, vyplňte proměnnou tabulky:

DECLARE @UL UserList;
INSERT @UL VALUES (5),(44),(72),(81),(126)

A nakonec zavolejte SP:

EXEC dbo.get_user_names @UL, @username OUTPUT;


  1. Nejlepší datový typ pro ukládání peněžních hodnot v MySQL

  2. Nejlepší způsoby, jak opravit poškozenou tabulku InnoDB v MySQL

  3. Vytvořte kontingenční tabulku pomocí PostgreSQL

  4. PostgreSQL, jak zjistit, které dotazy byly spuštěny