Sql server “RETURN”附近的语法不正确。尝试返回图像时

Sql server “RETURN”附近的语法不正确。尝试返回图像时,sql-server,Sql Server,我正在尝试使用以下函数返回图像: CREATE FUNCTION getDiverSignature (@id int) RETURNS image return select diver_signature from Diver WHERE diver_number = @id GO 当我将图像添加到潜水员表时,我使用了: 隔板柱 从Openrowset Bulk'C:\sign5.jpg',单个Blob作为img这不是return的工作方式。您可以返回一个结果集,在这种情况下,

我正在尝试使用以下函数返回图像:

CREATE FUNCTION getDiverSignature (@id int) 
RETURNS image
return 
select diver_signature 
from Diver 
WHERE diver_number = @id 

GO
当我将图像添加到潜水员表时,我使用了: 隔板柱
从Openrowset Bulk'C:\sign5.jpg',单个Blob作为img

这不是return的工作方式。您可以返回一个结果集,在这种情况下,只使用select而不使用返回,或者必须返回一个值,例如:

declare @ret image;

select @ret = diver_signature ...;

return @ret;

已尝试:创建函数getDiverSignature@id int返回图像作为BEGIN DECLARE@img image select@img=diver\u签名from diver,其中diver\u number=@id return@img END GO并得到以下错误:图像数据类型对于返回值无效。@user3885474,这听起来是一个很容易理解的回答——你不能返回图像,就这么简单。也许改用varbinarymax会管用?或者修改您的应用程序设计有没有办法将varbinarymax转换为image?我已经将image中的许多列更改为varbinarymax。您应该能够在适当的位置执行此操作,并且不会丢失任何功能或遭受任何数据损坏。还值得一提的是,将标量函数转换为内联表值函数会带来一些额外的性能提升。在SQL Server的未来版本中,将删除ntext、text和image数据类型。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。改用nvarcharmax、varcharmax和varbinarymax。