sql >> Database >  >> RDS >> Sqlserver

Hoe geef ik een lijst door als parameter in een opgeslagen procedure?

De voorkeursmethode voor het doorgeven van een reeks waarden aan een opgeslagen procedure in de SQL-server is het gebruik van tabelparameters.

Eerst definieert u het type als volgt:

CREATE TYPE UserList AS TABLE ( UserID INT );

Dan gebruik je dat type in de opgeslagen procedure:

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)

Dus voordat je die opgeslagen procedure aanroept, vul je een tabelvariabele in:

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

En tot slot de SP bellen:

EXEC dbo.get_user_names @UL, @username OUTPUT;


  1. FOUT:toestemming geweigerd voor relatietabelnaam op Postgres tijdens het proberen van een SELECT als een alleen-lezen gebruiker

  2. Waarde Fout bij het importeren van gegevens in de postgres-tabel met psycopg2

  3. Wat is MySQL-rijvolgorde voor SELECT * FROM table_name;?

  4. Firebase DB gebruiken met lokale DB