Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak przekazać listę jako parametr w procedurze składowanej?

Preferowaną metodą przekazywania tablicy wartości do procedury składowanej na serwerze SQL jest użycie parametrów o wartościach tabelarycznych.

Najpierw zdefiniuj typ w następujący sposób:

CREATE TYPE UserList AS TABLE ( UserID INT );

Następnie użyj tego typu w procedurze składowanej:

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)

Więc zanim wywołasz tę procedurę składowaną, wypełnij zmienną tabeli:

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

I na koniec zadzwoń do 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. 3 najważniejsze powody, dla których ludzie przechodzą na SaaS

  2. Łączna suma na serwerze MS Sql

  3. Czy SQL Server może wysłać żądanie internetowe?

  4. Dlaczego moje połączenie ODBC kończy się niepowodzeniem podczas uruchamiania ładowania SSIS w programie Visual Studio, ale nie podczas uruchamiania tego samego pakietu przy użyciu narzędzia Wykonaj pakiet

  5. Klucz obcy do klucza innego niż podstawowy