Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server 2005:Chamar um procedimento armazenado de uma cláusula WHERE


Isso é obtido executando primeiro o procedimento armazenado, capturando a saída em uma tabela #temp ou em uma variável @tabel e, em seguida, executando sua consulta na tabela. Algo assim:
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

Claro que isso não funcionará para você porque o up_droits precisa dos parâmetros i.xe d.droit da consulta. Isso indica que seu procedimento armazenado provavelmente deve ser uma função com valor de exibição ou tabela.