2013-05-01 17 views
5

Ho uno script T-SQL, requirment è necessario chiamare una stored procedure nella clausola where. Questa stored procedure accetta un parametro e restituisce un risultato bit. Gentilmente guidami come si fa.come chiamare una stored procedure in cui clausola di SQL

Grazie

Edit: Non posso modificare questo sp e renderlo una funzione. si prega di

+2

che sarebbe una funzione definded ... – bummi

+2

Penso Definito 'utente Funzione è buona pratica – Sachin

+0

In Where Clause? o DA? Non puoi fare nessuno dei due. –

risposta

4

È possibile utilizzare tabella temporanea per memorizzare l'output di stored procedure e utilizzarlo in cui clausola. Il numero di colonne nelle variabili temporanee deve essere uguale a quello in resultset dalla procedura e con tipo di dati esatto come colonne nel set di risultati della stored procedure. ad esempio,

create table #spResult ({columns as result of your sp}) 

insert into #spResult exec YourSP ({input parameters}) 

select * from yourtable 
where col in (select col from #spResult) 

drop table #spResult 
5

Non è possibile utilizzare Stored Procedure in cui la clausola ma può utilizzare User Defined Function nella clausola WHERE.

Se non potete convertire SP a funzionare, allora si deve prima ottenere il valore po 'di eseguire SP e l'uso che variabile nella clausola in cui ..

Problemi correlati