Sqlserver中存储过程,触发器,自定义函数(二)
发布时间:2020-12-12 14:50:15 所属栏目:MsSql教程 来源:网络整理
导读:? Sqlserver中存储过程,触发器,自定义函数: ?自定义函数: ??1.函数类型; ??2.函数的参数和返回值; ?? ??1.函数类型: ???标量值函数,返回的是一个标量值 ???表值函数: ????内联表值函数; ????多语句表值函数。 ??? ???标量值函数: eg1:创建一个统
?
Sqlserver中存储过程,触发器,自定义函数: ?自定义函数: eg1:创建一个统计某雇员订单总数的函数 create function SumOrders(@职工号 varchar(20))--指定参数名,和返回类型 returns int--指定返回类型 begin declare @订单总数 int select @订单总数=count(订单.订单号) from 订单 join 职工 on 订单.职工号=职工.职工号 where 职工.职工号=@职工号 return @订单总数 end select dbo.SumOrders('E4')??? ???eg2:创建内联表值函数 create function SelectOrdersByTime(@起始时间 datetime,@终止时间 datetime) returns table return select * from 订单 where 订单日期 between @起始时间 and @终止时间 select * from SelectOrdersByTime('2003-01-01','2003-07-01')??? eg3:创建多语句表值函数 create function MingDan()--无参函数 returns @名单 table ( 编号 int identity(1,1) not null,姓名 nvarchar(10) not null ) begin insert @名单 select 供应商编号,姓名 from 供应商 insert @名单 select 职工编号,姓名 from 职工 return end select * from MingDan()??? eg4:自定义函数生成默认值: ??? create function Default_Num() returns varchar(7) begin declare @编号 varchar(7) declare @id int select top 1 @编号=编号 from test order by 编号 desc if @@rowcount=0 set @编号='TCP_001' else begin set @id=cast(substring(@编号,5,3) as int) + 1 set @编号='TCP_' + replicate('0',3-len(@id)) + cast(@id as varchar(3)) end return @编号 end select dbo.Default_Num() create table test ( id int identity(1,1) not null primary key,编号 varchar(7) default dbo.Default_Num(),名称 varchar(3) ) insert test(名称) values('001') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |