首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

自定义一个表值函数,揭示“在此上下文中不能使用带有返回值的 RETURN 语句。”

2013-08-10 
自定义一个表值函数,提示“在此上下文中不能使用带有返回值的 RETURN 语句。”use testgoCreate function Avg

自定义一个表值函数,提示“在此上下文中不能使用带有返回值的 RETURN 语句。”


use test
go
Create function AvgResult(@scode varchar(10))--函数名与函数参数
Returns table--返回值的类型
As 
Begin
Declare @avg int --声明一个变量
select @avg = CONVERT(int,@scode) --把函数参数从varchar转换成int

Return 
(
select * from table3 where age = @avg
)
End



提示:
消息 178,级别 15,状态 1,过程 AvgResult,第 8 行
在此上下文中不能使用带有返回值的 RETURN 语句。

语句哪里有错误码?
[解决办法]
--要么直接RETURN
Create function AvgResult(@scode varchar(10))--函数名与函数参数
Returns TABLE--返回值的类型
As 
Return 
(
    select * from table3 where age = CONVERT(int,@scode)
)
GO

--要么先定义table,再INSERT,最后RETURN一下
Create function AvgResult(@scode varchar(10))--函数名与函数参数
Returns @table table(age int)--返回值的类型
As 
Begin
    Declare @avg int --声明一个变量
    select @avg = CONVERT(int,@scode) --把函数参数从varchar转换成int
 
INSERT @table 
select age from table3 where age = @avg--注意这儿的字段个数和类型要和定义的相对应

RETURN 
End

热点排行