19 messaggi dal 27 ottobre 2005
E' possibile utilizzare il risultato di una SP per fare una join all'interno di un'altra?
in pratica qualcosa tipo

SELECT tab1.campo1, tab2.campo2
FROM tab1 LEFT JOIN (exec sp1 @par1 = 'ciao') as tab2

dove sp1 è appunto una stored che restituisce un set di record filtrato in base ad un parametro

sbaglio solo la sintassi o sto proprio sbagliando mestiere??
grazie!
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
schbin ha scritto:
E' possibile utilizzare il risultato di una SP per fare una join all'interno di un'altra?
in pratica qualcosa tipo

SELECT tab1.campo1, tab2.campo2
FROM tab1 LEFT JOIN (exec sp1 @par1 = 'ciao') as tab2

dove sp1 è appunto una stored che restituisce un set di record filtrato in base ad un parametro

sbaglio solo la sintassi o sto proprio sbagliando mestiere??
grazie!


no, non si puo' fare....
potresti pero' passare per una tabella temporanea, popolata dall'esecuzione di (exec sp1 @par1 = 'ciao') e quindi eseguire la join su tale tabella...
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
19 messaggi dal 27 ottobre 2005
potresti pero' passare per una tabella temporanea, popolata dall'esecuzione
di (exec sp1 @par1 = 'ciao') e quindi eseguire la join su tale tabella...

ti ringrazio della risposta, in realtà è una soluzione che avevo già trovato, ma il problema della tabella temporanea temo che darebbe dei problemi di concorernza no?
(se viene richiamata la stored una seconda volta prima che la prima sia terminata che succede?)
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
schbin ha scritto:
potresti pero' passare per una tabella temporanea, popolata dall'esecuzione
di (exec sp1 @par1 = 'ciao') e quindi eseguire la join su tale tabella...

ti ringrazio della risposta, in realtà è una soluzione che avevo già trovato, ma il problema della tabella temporanea temo che darebbe dei problemi di concorernza no?
(se viene richiamata la stored una seconda volta prima che la prima sia terminata che succede?)


niente
SET NOCOUNT ON
USE tempdb
GO
CREATE PROC usp_test (@id int )
AS BEGIN
CREATE TABLE #myTB (
dt datetime NOT NULL ,
Id int
)

WAITFOR DELAY '00:00:10'

INSERT INTO #myTB VALUES ( getdate() , @id )
SELECT * FROM #myTB
DROP TABLE #myTb
END
GO
EXEC usp_test 1
EXEC usp_test 2
GO
DROP PROCEDURE usp_test

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
19 messaggi dal 27 ottobre 2005
mmmm... molto interessante

grazie di nuovo!
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
schbin ha scritto:
E' possibile utilizzare il risultato di una SP per fare una join all'interno di un'altra?


In alternativa alla soluzione di Andrea valuta se non sia conveniente trasformare le tue stored procedure in user defined function (UDF). Fai riferimento a questo mio articolo

http://italy.mvps.org/MVPs/lbianchi/art_UDF.htm

Bye

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.