Điều này đạt được trước tiên bằng cách thực hiện thủ tục được lưu trữ, ghi lại kết quả đầu ra vào bảng #temp hoặc biến @tabel, sau đó chạy truy vấn của bạn đối với bảng. Một cái gì đó như thế này:
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
Tất nhiên điều này sẽ không hiệu quả với bạn vì up_droits cần các tham số i.x và d.droit từ truy vấn. Điều này chỉ ra rằng thủ tục được lưu trữ của bạn có thể phải là một dạng xem hoặc hàm có giá trị bảng.