Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 存储过程中的SQL函数不工作_Sql Server_Function_Stored Procedures - Fatal编程技术网

Sql server 存储过程中的SQL函数不工作

Sql server 存储过程中的SQL函数不工作,sql-server,function,stored-procedures,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

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

代码如下:

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\u cms\u特色图像”不是可识别的函数名

SELECT TOP 4 refFeatured, 
       [Type],
       [Order], 
       [dbo].fn_cms_featured_image(refFeatured,[Type],@refLanguage) AS FeaturedImage, 
       [dbo].fn_cms_featured_name(refFeatured,[Type],@refLanguage) AS Name 
FROM  FEATURED 
ORDER BY [Order] ASC
出现上述错误。我在哪里犯错误

函数是标量值函数

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

调用用户函数的名称前应加上架构名称。
尝试写入
选择dbo.fn\u cms\u特色图像(…

在函数名前面添加架构名
[dbo]。

SELECT TOP 4 refFeatured, 
       [Type],
       [Order], 
       [dbo].fn_cms_featured_image(refFeatured,[Type],@refLanguage) AS FeaturedImage, 
       [dbo].fn_cms_featured_name(refFeatured,[Type],@refLanguage) AS Name 
FROM  FEATURED 
ORDER BY [Order] ASC
看看这篇文章:

试试看

Select item from fn_cms_featured_image(refFeatured,[Type],@refLanguage) AS FeaturedImage
而不是直接打电话

fn_cms_featured_image(refFeatured,[Type],@refLanguage) AS FeaturedImage

我还建议不要在代码中使用标量函数,它们是性能瓶颈,请使用内联表值函数重写它们。您的问题是否通过任何一个答案得到解决,或者问题仍然存在?