sql中如何加判断,让这个存储过程只执行一次
CREATE Proc [dbo].[OA_LeaseContract_Finance_Proce_Init]
@LTID int,
@LogName varchar(30)
as
Begin
declare @d1 datetime,@d2 datetime,@Term int,@PriceMonth numeric(18,2),@d3 int,@sysFinanceNumber bigint
select @sysFinanceNumber=a.Sys_FinanceNumber
,@d1=a.BeginDate,@d2=a.EndDate
,@Term=a.Pay_Cyc
,@d3=a.Ahead_Date
,@PriceMonth=a.Price
from OA_LeaseContract a
where LTID=@LTID;
declare @TB table
(
[id] [int] IDENTITY(1,1) NOT NULL,
HF_Date datetime,
BeginDate datetime,
EndDate datetime,
Pay_Price numeric(18,2),
Pay_Price2 numeric(18,2),
Get_Price2 numeric(18,2)
)
declare @dtmp datetime
set @dtmp=@d1
while @dtmp<=@d2
Begin
insert into @TB(BeginDate,EndDate,HF_Date)
values(@dtmp,dateadd(d,-1,DATEADD(m,@Term,@dtmp)),@dtmp-@d3)
set @dtmp=dateadd(m,@Term,@dtmp)
--insert into @TB(Awakeday)
--values(@dtmp-@d3)
--Select case when Advanceday > 0
--then Select id,DATEADD(day,-Advanceday,BeginDate) end from @TB
End
update @TB set Pay_Price=@PriceMonth*@Term
update @TB set EndDate=@d2 where EndDate>@d2
update @TB set Pay_Price2 = -@PriceMonth*2 where EndDate>@d2 or EndDate=@d2
update @TB set Pay_Price2 = @PriceMonth*2 where id = 1
update @TB set Pay_Price2 = 0 where BeginDate>@d1 and EndDate<@d2
--update @TB set HF_Date = null where id = 1
update @TB set Get_Price2 = -Pay_Price2
insert into OA_LeaseContract_Finance(Sys_FinanceNumber,LTID,HF_Date,BeginDate,EndDate
,Pay_Price,Pay_Price2,Get_Price2
,CreateUser)
select @sysFinanceNumber,Ltid=@LTID,HF_Date,BeginDate,EndDate
,Pay_Price,Pay_Price2,Get_Price2,@LogName
from @TB a
order by a.id
End
--select top 1 * from @TB order by BeginDate desc
GO
以上是存储过程代码,如何加判断让他只执行一次,现在是每执行一次,数据就写进去一次,如何修改?不太会sql求解答
...全文
相关推荐
列变成行存储过程将列变成行的存储过程
接着判断是否需要排序以及排序方式,根据@sort参数设置升序或降序。5. 计算总页数,如果总记录数不能被每页记录数整除,那么总页数会加1。6.
access 一次执行多条sql语句
### Access一次执行多条SQL语句在Access数据库管理中,有时我们需要在同一事务中执行多条SQL语句来确保数据的一致性和完整性。
MySQL存储过程中实现执行动态SQL语句的方法
在MySQL数据库中,存储过程是一种预编译的SQL语句集合,可以用来封装复杂的业务逻辑。在某些场景下,我们可能需要在存储过程中执行动态构建的SQL语句,以适应不断变化的数据操作需求。
MySQL 存储过程中执行动态SQL语句的方法
在MySQL数据库中,存储过程是一种预编译的SQL语句集合,可以用于执行复杂的数据库操作。在某些场景下,我们可能需要在存储过程中执行动态构建的SQL语句,以适应不断变化的需求。
pl sql批量执行多个sql文件和存储过程
### PL/SQL批量执行多个SQL文件和存储过程在日常的数据库管理与开发工作中,经常需要执行大量的SQL脚本或调用多个存储过程。


疑难问题
