2011-12-23 7 views
44

Ho creato una funzione scalare, è stata creata con successo, ma quando chiamo la funzione utilizzando l'istruzione select, dice oggetto non valido, ho modificato la funzione, ho ricevuto il messaggio comando completato con successo, ma quando chiamo la funzione, ottengo lo stesso errore. di seguito è la funzione Sto cercando di chiamare:come creare e chiamare la funzione scalare in sql server 2008

ALTER FUNCTION [dbo].[fn_HomePageSlider] 
(
    @PortalID int, 
    @ArticleID int 
) 
RETURNS NVARCHAR(MAX) 
AS 
BEGIN 
    DECLARE @HTML NVARCHAR(MAX) 
    SET @HTML = ''; 
    Declare @Title varchar(1000) 
    Select @Title= Title from CrossArticle_Article c where [email protected] 
    Select @HTML = @HTML + '<div class="homeSlider"> 
           <div class="text">'+ISNULL(c.Title,'')+'</div> 
          </div>' 
    FROM CrossArticle_Article c INNER JOIN crossarticle_url U ON U.articleid=c.Id 
    INNER JOIN FREETEXTTABLE(CrossArticle_Article,TITLE,@TITLE) as INDEX_TBL 
    ON INDEX_TBL.[KEY]=c.Id 
    WHERE INDEX_TBL.RANK >= 75 AND 
    c.Id<>@ArticleID AND 
    [email protected] 
    GROUP BY c.Title,U.url,INDEX_TBL.RANK 
    ORDER BY INDEX_TBL.RANK DESC 

    RETURN @HTML; 
END 

E sotto è il modo in cui sto chiamando la funzione:

SELECT * FROM dbo.fn_HomePageSlider(9, 3025) 

Qualcuno mi dica cosa c'è di sbagliato con la funzione di cui sopra, in quanto ho la messaggio completato correttamente.

risposta

89

La chiamata funziona se si tratta di una funzione con valori di tabella. Fin dalla sua una funzione scalare, è necessario chiamare piace:

SELECT dbo.fn_HomePageSlider(9, 3025) AS MyResult 
+0

come ottenere il risultato di questa query in una variabile in php? Voglio dire $ var = mssql_query (funzione che restituisce il valore int) .Io non sto ottenendo il risultato dentro $ var.I mostra come 'Resourceid # 76' @Akhil – Techy

6

Prova

SELECT dbo.function (parameters) 
+0

Questo non funziona, almeno per me. Rimuovi il '* da' e funziona. –

+0

Come ottenere il risultato di questa query in una variabile in php? Voglio dire $ var = mssql_query (funzione che restituisce il valore int) .Io non sto ottenendo il risultato dentro $ var.I mostra come 'Resourceid # 76' @Abbas – Techy