zoukankan      html  css  js  c++  java
  • 修改学籍异动的storeprocedure

    修改原因:

     ydid总是有重复值,原来系统不是直接在xjydjzb中更新数据,而是在一个keytable中记录上一次的最大的ydid。--今天在错误信息反馈中才知道这个原理 。

    所以直接在keytable中找ydid的最大值。

    CREATE procedure sp_xjyd
    @xhjm char(10),@yddm char(2)
    as
    if exists(select xhjm from xsjbdab where xhjm=@xhjm)
    begin
    declare @ydid varchar(20),@xh varchar(20),@bdm varchar(20),@xslxdm varchar(20),@xslbdm varchar(20)
    declare @nj varchar(20),@xxjdm varchar(20),@yxjdm varchar(20),@jhid varchar(20),@sxdm varchar(20)
    declare @fxdm varchar(20),@gzzdm varchar(20),@ydlxbz varchar(20)
    declare @czn varchar(20),@czy varchar(20),@czr varchar(20),@dyr varchar(20)
    declare @zyydbj varchar(3),@sxydbj varchar(3),@fxydbj varchar(20),@ydqxhqm varchar(20),@ybyzg varchar(20),@xbyzg varchar(20)
    declare @day datetime

    set @day=getdate()
    select @ydid=cast((max(table_id)+1as varchar(20)) from keytable where table_name='xjydjzb'
    if @yddm='31' 
    set @xxjdm='5'
    else if  @yddm='21' 
         
    set @xxjdm='3'
        
    else if  @yddm='12' 
         
    set @xxjdm='1'
    set @dyr='LJC'

    select @xh=xh,@bdm=bdm,@xslxdm=xslxdm,@xslbdm=xslbdm,@nj=nj,@yxjdm=xjztdm,@jhid=jhid,@sxdm=dwdm,
           
    @fxdm=left(dwdm,5),@gzzdm=left(dwdm,3),@ydlxbz=@yddm,@czn=datepart(YYYY,@day),
           
    @czy=datepart(MM,@day),@czr=datepart(DD,@day),@fxydbj='2',@ydqxhqm=xh,
           
    @ybyzg='Y',@xbyzg='N',@zyydbj='N',@sxydbj='Y'
    from xsjbdab
    where xhjm=@xhjm

    --bz,ydqxhjm不设值
    insert into xjydjzb(ydid,xh,xbdm,xxslxdm,xxslbdm,xnj,xxjdm,xjijhid,xsxdm,xfxdm,xgzzdm,ybdm,yxslxdm
    ,yxslbdm,ynj,yxjdm,yjxjhid,ysxdm,yfxdm,ygzzdm,ydlxbz,czn,czy,czr,dyr,zyydbj,sxydbj,fxydbj,ydqxhqm,ybyzg,xbyzg)
    values(@ydid,@xh,@bdm,@xslxdm,@xslbdm,@nj,@xxjdm,@jhid,@sxdm,@fxdm,@gzzdm,@bdm,@xslxdm
    ,
    @xslbdm,@nj,@yxjdm,@jhid,@sxdm,@fxdm,@gzzdm,@ydlxbz,@czn,@czy,@czr,@dyr,@zyydbj,@sxydbj,
     
    @fxydbj,@ydqxhqm,@ybyzg,@xbyzg)

    update xsjbdab
    set xjztdm=@xxjdm
    where xhjm=@xhjm

    update keytable
    set table_id=cast(@ydid as numeric(9)) where table_name='xjydjzb'

    end
    else
      
    print 'xhjm not exist!'
    GO
  • 相关阅读:
    UVa 11991 Easy Problem from Rujia Liu?
    UVa 11995 I Can Guess the Data Structure!
    LA 3485 (积分 辛普森自适应法) Bridge
    LA 5009 (三分法求极值) Error Curves
    软帝学院:一万字的Java基础知识总结大全(实用)
    学java可以做些什么
    从零开始学习java一般需要多长时间?
    学习java需要英语很好吗?
    java的8种基本数据类型
    什么是java变量,java变量是什么
  • 原文地址:https://www.cnblogs.com/samsonleung/p/1318702.html
Copyright © 2011-2022 走看看