存储过程 将数据插入到临时表,再根据条件判断 插入到不同的表

 1 ALTER PROCEDURE [dbo].[Proc_PX_InportScore]
 2 --@IdentityNum nvarchar(50),
 3 @PlanType nvarchar(50),--培训类别Guid
 4 @BanQGuid nvarchar(50) --班期Guid
 5 as
 6 begin
 7
 8
 9
10      --导入成绩
11      insert into pk_user(RowGuid,Name,IdentityNum,Age,Sex,DanWeiName,TitleCode,MobilePhone,IsEnable,[Status])
12      (--插入到人员表   条件:临时表里的人员不在人员表中  判断依据 IdentityNum
13      select LOWER(NEWID()),Name,IdentityNum,Age,(case Sex when ‘男‘ then 0 else 1 end),DanWeiName,ZhiWu,MobilePhone,‘1‘,‘2‘  from PX_InportScore
14      WHERE not exists (select pk_user.IdentityNum from pk_user WHERE  PX_InportScore.IdentityNum=pk_user.IdentityNum)
15      )
16
17      insert into PX_BaoM(RowGuid,Name,UserGuid,LoginID,DanWeiName,PXPrograms,Note)
18      (--插入到报名表    条件:从临时表里插入成功到人员表中的人  并且这些人不存在报名表中  条件:人员表的RowGuid   报名表的UserGuid
19             select LOWER(NEWID()), a.Name,b.RowGuid,a.IdentityNum,a.DanWeiName,‘03‘,Note
20             from PX_InportScore a
21             join pk_user b on a.IdentityNum=b.IdentityNum
22             where b.rowguid not in (select UserGuid from PX_BaoM)
23
24
25      )
26
27      insert into PX_BaoMDetail(RowGuid,ItemGuid,ItemName,IsDel,ClassGuid,ParentGuid,IsConfirm)
28      (--插入到报名子表   条件:插入成功到报名表里的人  并且这些人不在子表中       子表的ParentGuid  报名表的 RowGuid
29       select LOWER(NEWID()),@PlanType,‘‘ ,‘0‘,@BanQGuid, c.RowGuid,‘0‘
30             from PX_InportScore a
31             join pk_user b on a.IdentityNum=b.IdentityNum
32             join PX_BaoM c on  b.rowguid =c.UserGuid
33             where c.RowGuid not in (select ParentGuid  from PX_BaoMDetail)
34
35      )
36
37
38     --成功标记
39     update b set b.flag=1
40     from PX_BaoMDetail a,PX_InportScore b where a.ClassGuid=@BanQGuid
41
42      declare @successc int
43      declare @failc int
44
45      select @successc= count(1)  from PX_InportScore where  Flag=‘1‘
46      select @failc= count(1)  from PX_InportScore where  isnull(flag,0)<>1
47
48      select @successc as successc,@failc as failc
49
50
51
52
53 end
54 GO

时间: 2024-10-22 04:47:05

存储过程 将数据插入到临时表,再根据条件判断 插入到不同的表的相关文章

[转载]mysql创建临时表,将查询结果插入已有表中

今天遇到一个很棘手的问题,想临时存起来一部分数据,然后再读取.我记得学数据库理论课老师说可以创建临时表,不知道mysql有没有这样的功能呢?临时表在内存之中,读取速度应该比视图快一些.然后还需要将查询的结果存储到临时表中.下面是创建临时表以及插入数据的例子,以供大家参考. A.临时表再断开于mysql的连接后系统会自动删除临时表中的数据,但是这只限于用下面语句建立的表:1)定义字段  CREATE TEMPORARY TABLE tmp_table (      name VARCHAR(10)

性能测试四十:Mysql存储过程造数据

性能测试是基于大量数据的,而进行性能测试之前肯定没那么多数据,所以就要自己准备数据 数据构造方法: 1.业务接口 -- 适合数据表关系复杂 -- 优点:数据完整性比较好2.存储过程 -- 适合表数量少,简单 -- 优点:速度最快3.脚本导入 -- 适合数据逻辑复杂 -- 自由度比较高4.数据量级 --测试数据 --基础数据 启动并用工具连接mysql,这里的新建函数,所建的函数,即为存储过程 也可以在命令行mysql -u root -p 登录后输入存储过程的sql运行,但是这就是纯命令行了 执

20140530-MySQL插入中文问题再做笔记

20140530-MySQL插入中文问题再做笔记 1.脚本语句 导入之前,先charset gbk. 修改表字段编码: 注意:这里用导入的方式插入的数据,控制台会报错.在我们的客户端工具中执行,就不会报错了. 2.MyBatis中,xml文件引入成为mapper的配置: 3.写junit测试类的时候,中文数据不能正常读取: 解决办法:字符串连接参数要添加一下. 20140530-MySQL插入中文问题再做笔记,布布扣,bubuko.com

mysql创建临时表,将查询结果插入已有的表

A.临时表再断开于mysql的连接后系统会自动删除临时表中的数据,但是这只限于用下面语句建立的表:1)定义字段  CREATE TEMPORARY TABLE tmp_table (      name VARCHAR(10) NOT NULL,       time date  NOT NULL  )更高级点就是:create temporary  TABLE `temtable` (  `jws` varchar(100) character set utf8 collate utf8_bi

存储过程存放数据方式

存储过程存放数据的方式主要有: 1.将数据存放到文件中:select c_content into outfile 'D:\\action.properties'; 2.将数据保存到数据库中: 存储过程的功能非常强大,在某种程度上甚至可以替代业务逻辑层.

jQuery操作列表数据转成Json再输出为html dom树

jQuery 把列表数据转成Json再输出为如下 dom树 <div id="menu" class="lv1"> <ul class="menu"> <li><a href="#" class="parent"><span>aaaaaaaaaaa</span></a> <div class="lv2&quo

mysql 判断指定条件数据存不存在,不存在则插入

折腾了半天终于把这个给折腾顺了,但是后来发现用不了竟然...悲剧啊,但是还是要记录下加深记忆 insert into table1 (field1, field2,field3) select ?field1,?field2,?field3 from temp where not exists (select field1,field2,field3 from table1 where field1=?field1 and field2=?field2 and field3=?field3);

【知识库】-数据库_MySQL之高级数据查询:去重复、组合查询、连接查询、虚拟表

简书作者:seay 文章出处: 关系数据库SQL之高级数据查询:去重复.组合查询.连接查询.虚拟表 回顾:[知识库]-数据库_MySQL之基本数据查询:子查询.分组查询.模糊查询 Learn [已经过测试校验] 一.去重复(DISTINCT) 二.组合查询 三.UNION(并集) 四.连接查询 五.虚拟表 一.去重复(DISTINCT) DISTINCT:用于返回唯一不同的值,主要是用于某一字段 语法 SELECT DISTINCT <列名>|* FROM <表名> 示例 -- 查

初始化数据抽取、初始条件与增量条件

声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4297069.html (注:非后勤模块信息包不能选择下面第三种初始化方式: ) 初始化的过程会做的三件事: 1.加载初始数据 2.打初始标记(主要记录初始化时数据过滤条件是什么,在增量抽取时使用