做了一个测试,函数的嵌套问题,不知何解.
--测试一:
CREATE FUnction a (@ia datetime)
returns varchar(100)
as
begin
declare @a varchar(100)
set @a='100'
return @a
end
create function b (@a varchar(100))
returns varchar(100)---------返回值集.
as
begin
return @a
end
select dbo.b(dbo.a(getdate()))----------可以执行.
/*
------------------
100
*/
drop function a,b
----------------------------------------------------------------------
----------------------------------------------------------------------
--测试二:
CREATE FUnction a (@ia datetime)
returns varchar(100)
as
begin
declare @a varchar(100)
set @a='100'
return @a
end
go
create function b (@a varchar(100))
returns @re table(a varchar(100))--------------返回表集.
as
begin
insert @re
select @a
return
end
go
select * from dbo.b(dbo.a(getdate())-----------不行.
-------------
/*
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '.' 附近有语法错误。
*/
select * from dbo.b(cast(getdate() as varchar()))-----------不行.
-------
/*服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '(' 附近有语法错误。
*/
--请各位解释一下.
问题点数:20、回复次数:4Top
1 楼internetcsdn(2003-8-7 9:20:26)回复于 2004-07-04 20:56:56 得分 0
各位有没有碰过类似的情况啊.Top
2 楼zjcxc(邹建)回复于 2004-07-04 21:40:00 得分 10
搞不明白,也许是不支持,也许是BUGTop
3 楼huwgao(小楼听雨)回复于 2004-07-04 23:09:45 得分 10
好像返回表变量函数参数不支持任何函数
select * from dbo.b(right('asdad',2))
select * from dbo.b(cast('asdad' as varchar))
服务器: 消息 156,级别 15,状态 1,行 1
在关键字 'right' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: '(' 附近有语法错误。
Top
4 楼internetcsdn(2003-8-7 9:20:26)回复于 2004-07-05 12:02:06 得分 0
发现今天的人气很旺,
再UP一个.Top




