2011-12-23 7 views
44

He creado funciones escalares, fue creado con éxito, pero cuando llamo a la función usando la instrucción select, dice objeto no válido, alteré la función, recibí el mensaje comando completado con éxito, pero cuando llamo a la función, obtengo el mismo error. a continuación está la función Estoy intentando llamar:cómo crear y llamar a la función escalar en el servidor sql 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 

Y a continuación es la forma en que estoy llamando a la función:

SELECT * FROM dbo.fn_HomePageSlider(9, 3025) 

Puede alguien decirme qué le pasa a la función anterior, como llegue a la comando de mensaje completado con éxito.

Respuesta

89

Su llamada funciona si fuera una función con valores de tabla. Desde su una función escalar, es necesario llamar así:

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

cómo obtener el resultado de esta consulta en una variable en php? Me refiero a $ var = mssql_query (función que devuelve el valor int). No obtengo el resultado dentro de $ var. Muestra como 'Resourceid # 76' @Akhil – Techy

6

Trate

SELECT dbo.function (parameters) 
+0

Esto no funciona, al menos para mí. Elimina el '* de' y funciona. –

+0

¿Cómo obtener el resultado de esta consulta en una variable en php? Me refiero a $ var = mssql_query (función que devuelve el valor int). No obtengo el resultado dentro de $ var. Muestra como 'Resourceid # 76' @Abbas – Techy

Cuestiones relacionadas