USE db_sell GO CREATE procedure P_ruku @pzs int, --用于接收商品種數(shù) @je money, --用于接收入庫金額 @sf money, --用于接收實付金額 @gysname varchar(100), --用于接收供應(yīng)商名稱 @date datetime, --用于接收入庫日期 @operator varchar(30), --用于接收操作員 @jsr varchar(30), --用于接收經(jīng)手人 @jsfs varchar(10), --用于接收結(jié)算方式 @rukuid varchar(30) output --用于輸出入庫編號 as begin Declare @temp varchar(30) --提取游標(biāo)中的數(shù)據(jù) set @rukuid = 'RK'+ Convert(varchar(20),Year(@date)) if Month(@date)<10 --將月格式化為兩位數(shù)字 set @rukuid = @rukuid +'0'+ Convert(varchar(20),Month(@date)) else set @rukuid = @rukuid+Convert(varchar(20),Month(@date)) if Day(@date)<10 --將日格式化為兩位數(shù)字 set @rukuid = @rukuid +'0'+ Convert(varchar(20),Day(@date)) else set @rukuid = @rukuid+Convert(varchar(20),Day(@date)) --聲明一個局部游標(biāo)用于提取當(dāng)前日期的最大入庫編號 declare fetch_MaxPh Cursor LOCAL Scroll for select Max(rkid) from tab_ruku_main where rkdate>= FLOOR(Convert(Float,@date)) and rkdate<Floor(Convert (Float,@date))+1 if CURSOR_STATUS('local','fetch_Maxph')= -1 --如果游標(biāo)未打開,則打開游標(biāo) Open fetch_Maxph Fetch first from fetch_Maxph into @temp Close fetch_Maxph Declare @Id Int if @temp is NUll begin set @rukuid = @rukuid+'001' end else begin --確定入庫編號后3位數(shù)字的顯示格式 set @id = Convert(int,SUBSTRING(Rtrim(@temp),11,10)) if @id <9 set @rukuid = @rukuid +'00'+Convert(varchar(20),@id+1) else if @id <99 set @rukuid = @rukuid +'0'+Convert(varchar(20),@id+1) else set @rukuid = @rukuid + Convert(varchar(20),@id+1) end --將接收到的數(shù)據(jù)添加到tab_ruku_main表中 insert into tab_ruku_main values (@rukuid,@pzs,@je,@sf, @gysname,@date,@operator,@jsr,@jsfs) end GO |