Ho risolto il problema creando una tabella temporanea dove
vado a salvare il mio dato per poterlo utilizzare.
---------------------------------------------------------
create table #Results (my_result_col int)
insert #Results (my_result_col) exec Max_Int @table
select @ind = my_result_col from #Results
select @last1 = cast((@ind - @qty) as varchar(10))
select @selez = 'SELECT * FROM ' + @table + ' where ind
> ' + @last1 + ' ORDER BY ind DESC'
exec (@selez)
----------------------------------------------------------
E' possibile risolvere la cosa diversamente?
Grazie mille
Fulvio Beretta
--
Luca Bianchi
Microsoft MVP - SQL Server
"Fulvio Beretta" <fulvio....@st.com> wrote in message
news:060a01c30344$f21863d0$a401...@phx.gbl...
Ecco la stored procedure interna:
----------------------------------------------
CREATE procedure Max_Int2 (
@table varchar(20),
@ind int OUTPUT
)as
declare @ind1 as varchar(100)
select @ind1 = 'select max(ind) from ' + @table
exec (@ind1)
GO
----------------------------------------------
ed ecco la chiamante che restituisce solo il risultato di
quella interna ma non esegue la query principale.
----------------------------------------------
CREATE procedure Get_Recs (
@table varchar(20),
@qty integer
)as
declare @ind int
declare @ind2 int
declare @ind1 as varchar(30)
declare @selez as varchar(100)
declare @last as int
declare @last1 as varchar(10)
exec Max_Int2 @table , @ind = @ind2 OUTPUT
select @last1 = cast((@ind2 - @qty) as varchar(10))
select @selez = 'SELECT * FROM ' + @table + ' where ind
> ' + @last1 + ' ORDER BY ind DESC'
exec (@selez)
GO
-------------------------------------------------
L'esecuzione si blocca add 'exec Max_Int2' e non viene
eseguito nient'altro.
Dove sbaglio?
Grazie dell'attenzione
>-----Messaggio originale---
>.
>
SET @sql = 'SELECT * FROM ' + @table + ' WHERE ind > (SELECT MAX(ind) - ' +
CAST(@qty AS VARCHAR(5)) + ' FROM ' + @table + ')'
ed eseguirla con il comando EXECUTE. C'è qualche altra esigenza?
Grazie mille Luca!