【发布时间】:2014-11-09 12:34:55
【问题描述】:
我正在尝试使用一些变量输入调用表值函数。但是,如果调用脚本没有设置输入值,我想使用函数的 default 值。
所以,假设我有这个功能(是的,这是一个愚蠢的功能)
create function dbo.testing(@countTo int=10)
returns @output table(num int)
as
begin
declare @i int
set @i=0
while @i < @countTo
begin
set @i=@i+1
insert into @output(num)
values(@i)
end
return
end
然后,我可以为输入设置一个变量:
declare @stop int
set @stop=15
select * from dbo.testing(@stop)
但是,如果@stop 保留为null,我想使用default 值,但它只会使用null(它什么都不返回......)。本质上,我希望以下工作:
select * from dbo.testing(isnull(@stop,default))
但它只是返回错误:
Msg 156, Level 15, State 1, Line 4 关键字附近的语法错误 '默认'。
有没有办法在不修改函数的情况下做到这一点?
【问题讨论】:
标签: tsql sql-server-2005