首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

自定义函数的参数默认值不能使用,大侠们帮忙看看啊解决方法

2012-01-21 
自定义函数的参数默认值不能使用,大侠们帮忙看看啊!CreateFUNCTIONfn_get_xxx(@svarchar(6),@echar(2)nul

自定义函数的参数默认值不能使用,大侠们帮忙看看啊!
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还真不支持。

热点排行
Bad Request.