Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server 2005:chiama una stored procedure da una clausola WHERE

Ciò si ottiene eseguendo prima la stored procedure, acquisendo l'output in una tabella #temp o in una variabile @tabel, quindi eseguendo la query sulla tabella. Qualcosa del genere:

declare @droits_table (val ,... );
insert into @droits_table
exec up_droits(param, param);
SELECT distinct top 10 i.x, d.droit FROM v_droit d, v_info i WHERE d.nomdroit='yy' AND i.id<>2 AND (select val from @droits) <>3

Ovviamente questo non funzionerà per te perché up_droits ha bisogno dei parametri i.x e d.droit dalla query. Ciò indica che la procedura memorizzata dovrebbe essere probabilmente una funzione con valori di visualizzazione o tabella.