自定义函数的参数默认值不能使用,大侠们帮忙看看啊!
Create FUNCTION fn_get_xxx
(@s varchar(6),
@e char(2) = null)
RETURNS float
AS
BEGIN
...
END
编译完成以后,如果第二个参数不指定的话,执行就报错。
select dbo.fn_get_xxx ( '000000 ')
错误信息:
服务器: 消息 313,级别 16,状态 2,行 1
为过程或函数 dbo.fn_get_xxx 提供的参数数目不够。
如果是这样:
select dbo.fn_get_xxx ( '000000 ',null)
就可以得到正确的结果。我大多数的使用情况都是不用指定第二个参数的,如果都要指定第二个参数的话,用起来就太麻烦了。
我想知道怎么才能不用指定有默认值的参数。
大侠们帮忙看看,谢了先!
------解决方案--------------------呵呵,好像不行
sql server 函数不支持重载吧
------解决方案--------------------多指定一个null,好像也没有麻烦多少阿
------解决方案--------------------写成存储过程,存储过程的最后连续的几个参数可以省略。
------解决方案----------------------function是不支持,不过可以改为 存储过程,支持缺省参数调用,如:
Create proc fn_get_xxx
@s varchar(6),
@Returns float out,
@e char(2) = null
AS
...
go
--调用
declare @Returns float
exec fn_get_xxx '000000 ',@Returns out
------解决方案--------------------函数的参数必须传入。
------解决方案--------------------function还真不支持。