0

嗨,使用简单参数制作函数

create function test (@takesID as int)
returns nvarchar(50)
as
begin
  declare @num int
  set @num = 6
  SELECT        ID, Description_mm
  FROM            dbo.Win_Products
  WHERE        (ID = @takesID)
  return @num
end

得到消息:

Msg 444, Level 16, State 2, Procedure test, Line 7

函数中包含的 Select 语句不能将数据返回给客户端。

请帮助,感谢您宝贵的时间,非常感谢。

索努

4

2 回答 2

0

好吧,问题与错误消息所述完全一样,您不能在标量函数中返回结果集。

因此,您至少需要将值插入到临时表中,或者根本没有选择。

create function test (@takesID as int)
returns nvarchar(50)
as
begin
  declare @num int
  set @num = 6

  return @num
end
于 2013-10-11T05:45:56.680 回答
0

你想返回什么?Description_mm 还是硬编码的 @num ?

如果您尝试返回描述,请尝试...

create function test (@takesID as int)
returns nvarchar(50)
as
begin
  declare @Description_mm nvarchar(50);
  SELECT        @Description_mm =  Description_mm
  FROM            dbo.Win_Products
  WHERE        (ID = @takesID);
  return @Description_mm;
end
于 2013-10-11T06:14:17.087 回答