sql >> Databáze >  >> RDS >> Sqlserver

SQL Server 2005:Volání uložené procedury z klauzule WHERE

Toho je dosaženo tím, že nejprve provedete uloženou proceduru, zachytíte výstup do #temp tabulky nebo proměnné @tabel a poté spustíte dotaz proti tabulce. Něco takového:

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

Samozřejmě to pro vás nebude fungovat, protože up_droits potřebuje parametry i.x a d.droit z dotazu. To znamená, že vaše uložená procedura by pravděpodobně měla být funkcí s hodnotou pohledu nebo tabulky.



  1. SELECT data z jiného schématu v oracle

  2. Vložit DML s proměnnou Bind:POUŽITÍ doložky o provedení okamžitého prohlášení

  3. postgreSQL změní datový typ sloupce na časové razítko bez časového pásma

  4. Rails 3 – náhle čekající chyba migrace