2013-05-01 18 views
5

Mam skrypt T-SQL, wymaganie jest, aby wywołać procedurę przechowywaną w klauzuli where. Ta procedura przechowywana przyjmuje parametr i zwraca wynik bitowy. Uprzejmie poprowadź mnie, jak to zrobić.jak wywołać procedurę przechowywaną, gdzie klauzula SQL

Dzięki

Edit: cant zmodyfikować ten sp i sprawiają, że funkcja. proszę

+2

że byłaby funkcja definiowany użytkownik ... – bummi

+2

myślę 'User Defined Funkcja "jest dobrą praktyką – Sachin

+0

W Where Clause? lub Z? Nie możesz ich zrobić. –

Odpowiedz

4

Możesz użyć tabeli tymczasowej do przechowywania danych wyjściowych procedury przechowywanej i używać jej w klauzuli where. Liczba kolumn w zmiennych tymczasowych musi być taka sama, jak w zestawie wyników z procedury oraz z dokładnym typem danych, jak w kolumnach w zestawie procedur składowanych. np

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

Nie można używać Stored Procedure w którym klauzula ale można użyć User Defined Function w klauzuli WHERE.

Jeśli nie można przekształcić SP funkcjonować potem trzeba najpierw uzyskać wartość bitową z wykonaniem SP i używać tej zmiennej w wyrażeniu WHERE ..

Powiązane problemy