2009-05-29 6 views

Antwort

1

Wenn Sie eine gespeicherte Prozedur aufrufen, um Ihre Ergebnismenge zurückzugeben, müssen Sie nur einen Parameter festlegen, welche Version der Abfrage ausgeführt werden soll. Halten Sie die Ergebnismengenspalten und ihre Typen gleich.

create procedure YourReportProcedure 
(
    @ReportVersion char(1) 
    ,@filterParam1  varchar(12) 
    ,@filterParam2  int 
    .... 
) 

if @ReportVersion='A' 
BEGIN 
    SELECT 
     A,B,C 
     FROM ..... 
     WHERE [email protected] and [email protected] 

END 
ELSE [email protected]='C' 
BEGIN 
    SELECT 
     A,B,C 
     FROM ..... 
     WHERE g>@filterParam1 and r<@filterParam2 

END 
ELSE 
BEGIN 
    return 1 --error 
END 

return 0 

go