一、有返回值的函数
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'