存储过程中的SQL函数不起作用

时间:2017-06-22 10:06:50

标签: sql-server function stored-procedures

在存储过程中,我尝试使用函数。

以下代码:

SELECT TOP 4 
    refFeatured,
    [Type],
    [Order],
    fn_cms_featured_image(refFeatured,[Type],@refLanguage) AS FeaturedImage,
    fn_cms_featured_name(refFeatured,[Type],@refLanguage) AS Name 
FROM
    FEATURED
ORDER BY 
    [Order] ASC 

我写了函数但没有工作。

  

'fn_cms_featured_image'不是可识别的函数名称。

发生上述错误。我哪里弄错了

函数是标量值函数。

ALTER FUNCTION [dbo].[fn_cms_featured_image] ( @iNumber int,@type nvarchar(20),@lang int )
RETURNS nvarchar(50)
AS
BEGIN
    DECLARE @image  nvarchar(100)

    IF @type ='Category'
        SET @image = (SELECT TOP 1 c.Icon FROM CATEGORY c WHERE c.Id=@iNumber)
    ELSE
        SET @image = (SELECT TOP 1 pl.DefaultImage FROM  PRODUCT_IMAGE_LOCALIZED pl WHERE  pl.refLanguage=@lang AND pl.refProduct=@iNumber)

    RETURN (@image)
END