存储过程中带游标

Create Procedure UpdateTimeProperty
@SurroundingRock  nvarchar(200),
@IFClassName  nvarchar(200),
@Prop_StartStation nvarchar(200),
@Prop_EndStatoin nvarchar(200),
@StartTime nvarchar(200),
@UnitTime nvarchar(200)
as
begin
declare @curStartStation nvarchar(200)
declare @curEndStatoin nvarchar(200)
declare @EBS nvarchar(200)
declare getNum cursor
for(select Prop_StartStation,Prop_EndStatoin,EBS from v_ItemProperty
where SurroundingRock=@SurroundingRock and  IfcClassName=@IFClassName)
open getNum;
fetch next from getNum into @curStartStation,@curEndStatoin,@EBS;
while @@FETCH_STATUS = 0
    begin
	  if(
	    ((select dbo.f_GetNum(@curStartStation) as curStartStation) > (select dbo.f_GetNum(@Prop_StartStation) as Prop_StartStation)) and  -----游标中的开始桩号大于参数的开始桩号
		((select dbo.f_GetNum(@curEndStatoin) as curEndStatoin)<(select dbo.f_GetNum(@Prop_EndStatoin) as Prop_EndStatoin) )  and-----游标中的结束桩号要小于参数的结束桩号
	     ((select dbo.f_GetNum(@curStartStation) as curStartStation) <(select dbo.f_GetNum(@Prop_EndStatoin) as Prop_EndStatoin))and-----游标中的开始桩号小于参数的结束桩号
		 ((select dbo.f_GetNum(@curEndStatoin) as curEndStatoin)>(select dbo.f_GetNum(@Prop_StartStation) as Prop_StartStation))    -------游标中的结束桩号大于参数中的开始桩号
	   )
	   update t_ComponentProperty
	   set Value=@curStartStation
	   where t_ComponentProperty.EBS=@EBS and Name='ScheduleStartTime';
	   update t_ComponentProperty
	   set Value=@curEndStatoin
	   where t_ComponentProperty.EBS=@EBS and Name='ScheduleEndTime';
	fetch next from getNum into @curStartStation,@curEndStatoin,@EBS;
	end
	close getNum
	deallocate getNum
	end
go

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值