您好,欢迎访问一九零五行业门户网

分析MS SQL Server里函数的两种用法

sql server里 函数 的两种用法(可以代替游标) 1. 因为update里不能用存储过程,然而要根据更新表的某些字段还要进行计算。我们常常采用游标的方法,这里用 函数 的方法实现。 函数 部分: 以下是引用片段: createfunction[dbo].[fun_gettime](@taskphaseidi
sql server里函数的两种用法(可以代替游标)
1. 因为update里不能用存储过程,然而要根据更新表的某些字段还要进行计算。我们常常采用游标的方法,这里用函数的方法实现。
函数部分:
以下是引用片段:
create function [dbo].[fun_gettime] (@taskphaseid int)
returns float as
begin
declare @taskid int,
@hour float,
@percent float,
@return float
if @taskphaseid is null
begin
return(0.0)
end
select @taskid=taskid,@percent=isnull(workpercent,0)/100
from tabletaskphase
where id=@taskphaseid
select @hour=isnull(tasktime,0) from tabletask
where id=@taskid
set @return=@hour*@percent
return (@return)
end
调用函数的存储过程部分
以下是引用片段:
create procedure [dbo].[proc_calcca]
@roid int
as
begin
declare @ca float
update tablefmeca
set
cvalue_m= isnull(moderate,0)*isnull(fmerate,0)*isnull(b.basfailurerate,0)*[dbo].[fun_gettime](c.id)
from tablefmeca ,tablerelation b,tabletaskphase c
where roid=@roid and taskphaseid=c.id and b.id=@roid
select @ca=sum(isnull(cvalue_m,0)) from tablefmeca where roid=@roid
update tablerelation
set criticality=@ca
where id=@roid
end
go
其它类似信息

推荐信息