Create Function StrLength
(
@Str varchar(200)
)
returns varchar(200) AS
begin
if(len(@Str)=0)
return '0'
else
return @Str + '_' + convert(varchar(20),len(@Str))
end保存时出错,提示:函数中最后一条语句必须是返回语句!将上边函数稍做修改:
Create Function StrLength
(
@Str varchar(200)
)
returns varchar(200) AS
begin
declare @ReturnStr varchar(200) /*返回值*/
if(len(@Str)=0)
set @ReturnStr = '0'
else
set @ReturnStr = @Str + '_' + convert(varchar(20),len(@Str))
return @ReturnStr
end这回可正常保存了,也就是说:MSSQL的标量函数不能像C#的函数那样可以任意地方用return返回值,他的返回语句必须在最后一行进行!
再来看看标量函数的语法:
Create FUNCTION [ owner_name.] function_name
( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS scalar_return_data_type
[ WITH < function_option> [ [,] ...n] ]
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END语法中已经说得很明白了,只是没去写也没发觉,呵呵。
顺便说下标量函数的调用方法:
/*
标量函数调用格式:owner_name.function_name
注意:owner_name不能省略!
*/
print dbo.StrLength('www.mzwu.com')
评论(0)
暂无评论。