SQL SERVER的function问题

brucenan999 2007-09-19 11:43:46
见贴:
http://community.csdn.net/Expert/topic/5764/5764458.xml?temp=.9269068

我建了一个函数.里面有个SQL 语句.
如果单独执行SQL语句,结果正确.运行正常.
如果执行select dbo.function('asfs')调用函数,结果为NULL.

不知道是为什么?
函数里的语句就是那个SQL,都是一样的.
...全文
170 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
brucenan999 2007-09-19
  • 打赏
  • 举报
回复
我改了一下,现在是个varchar.

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[f_Region](@refno varchar)
returns varchar(200)
as
begin
declare @a varchar(200)
set @a=''
select @a=@a+','+ name
from table where refer = @refno
set @a = stuff(@a,1,1,'')
return @a
end

select dbo.f_region('aaa')结果为NULL
但是:
declare @a varchar(200)
set @a=''
select @a=@a+','+ name
from table where refer = @refno
set @a = stuff(@a,1,1,'')
select @a
结果正确.

这是为什么啊为什么....
sp4 2007-09-19
  • 打赏
  • 举报
回复
哈哈
  • 打赏
  • 举报
回复
asfs是啥东西,你的把你的ID放进去,或者字段。
pt1314917 2007-09-19
  • 打赏
  • 举报
回复
且一次只能指定一个。 。
如select dbo.function(1)

不能select dbo.function(1,2,3)
pt1314917 2007-09-19
  • 打赏
  • 举报
回复
select dbo.function('asfs')
你这个函数需要的参数是id字段的值
brucenan999 2007-09-19
  • 打赏
  • 举报
回复
TNND,问题就在这个参数类型上.varchar(50)的,写成了varchar...参数没有传进去..

谢谢大家了.

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧