88 messaggi dal 19 ottobre 2012
Ciao a tutti ,
ho creato una Funzione per richiamarla all'interno in una query per estrarre una serie di codici. La funzione è questa:


CREATE FUNCTION [dbo].[MasterFunc] (
)
RETURNS INT
AS
BEGIN
DECLARE @IdIncarico INT
SELECT @IdIncarico = ti.idincarico FROM miatabella ti
RETURN @IdIncarico
END

L'ho creata così per non dover passare parametri. Ma il problema è che se eseguo una qquery brutale per vederne il funzionamento mi restituisce solo un valore:

CREATE TABLE #tempidincarico (idincarico INT)
INSERT INTO #tempidincarico
SELECT [dbo].[MasterFunc]()
SELECT * FROM #tempidincarico t
DROP TABLE #tempidincarico

Infatti poi se la inserisco nella query che mi serve mi restituisce il primo valore con le altre colonne ripetute all''infinito.
Dove sbaglio? O è l'approccio al problema sbagliato?
Grazie anticipatamente

Giorgio

Dove sbaglio?
1.976 messaggi dal 27 luglio 2005
Contributi
salve Eusebio,
scusa ma non ho capito :D

...
SELECT @IdIncarico = ti.idincarico FROM miatabella ti
RETURN @IdIncarico


ritorna il valore "dell'ultima riga proiettata in miatabella"...
e a prescindere dalla "validita'" di questa query (sicuro che vuoi tutte le righe e restituisci solo l'ultima??), quindi, 1 sola riga, visto che e' una funzione scalare...

poi dici:

... nella query che mi serve mi restituisce il primo valore con le altre colonne ripetute all''infinito.


che colonne??? poi, "all'infinito"??
non capisco....

salutoni romagnoli
--
Andrea

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

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.