SQL Server 自定义函数

一、有返回值的函数

View Code
create function GetNo()
returns varchar(20) --定义返回类型
as
begin
declare @maxNo int --声明一个整形的变量
declare @temp varchar(20) --声明一个与表中字段类型相同的变量
declare @result varchar(20) --声明一个返回的变量
declare @length int --声明一个变量,用于下面的截取字符串

set @temp = (select max(hku_no) from person where hku_no like 'E%') --取得表中的值并赋值给变量
set @length=datalength(@temp)-1

if @temp is not null --如果查出的非空
begin
set @temp=subString(@temp,2,@length) --截取字符串
set @maxNo=convert(int,@temp) --类型转换
set @maxNo=@maxNo+1
set @result='E'+convert(varchar(20),@maxNo)
end
else
begin
set @result='E0001'
end


return @result --返回结果

end



执行函数(删除、修改都和存储过程一样,drop、alter):

select dbo.GetNo()


二、看到一个资料说可以创建没有返回值的函数,但我尝试失败。。。

下面创建一个有返回值有输入参数的函数

create function GetName( @name varchar(8) )
returns varchar(20)
as
begin
return @name+'你好'
end

执行函数

select dbo.GetName('ww')


三、判断数据库中是否存在某一函数

if exists (select * from sysobjects where id=object_id(N'[dbo].[GetExtUserHKUNo]') and xtype in (N'FN',N'IF',N'TF'))
print 'yse'
else
print 'no'





posted @ 2012-01-12 17:12  One Ivan  阅读(560)  评论(0编辑  收藏  举报