sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2005:Anropa en lagrad procedur från en WHERE-sats

Detta uppnås genom att först exekvera den lagrade proceduren, fånga utdata i en #temp-tabell eller en @tabel-variabel och sedan köra din fråga mot tabellen. Något så här:

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

Naturligtvis kommer detta inte att fungera för dig eftersom up_droits behöver parametrarna i.x och d.droit från frågan. Detta indikerar att din lagrade procedur förmodligen bör vara en funktion som värderas av en vy eller en tabell.



  1. Problemet med förlorad uppdatering i samtidiga transaktioner

  2. Hur implementerar man en många-till-många-relation i PostgreSQL?

  3. Hur man validerar ÅÅÅÅMMDD datum angivet som parameter PL/SQL

  4. Oracle:hur får man procent av totalt genom en fråga?