SQL复制多表数据

简介:

最近在客户这边维护的时候,他们有需要把现在的数据复制到以前,应付检查.所以我就写了些SQL来复制该数据

废话少说,把代码贴出来,大家看看

ContractedBlock.gif ExpandedBlockStart.gif Code
--删除临时表
drop table #tmp1
drop table #tmp2
drop table #tmp3

--获取数据
select id,company_id,examine_date,moderator_party,moderator_id 
= case when moderator_id='17adfa4692f248a180b9b4ad65835244' then '59cfe656178c45f1ab24355699f00cdb' when moderator_id='161887e22a3b46afa2033a8fa7a3585a' then '1b5a7b3472e34a1b8d350207ce6c0dac' else moderator_id  end   into #tmp1 from train_examine where year(examine_date)=2008 and month(examine_date)<7 and company_id = '35020009' order by examine_date

select 
* into #tmp2 from train_examine_item where train_examine_id in(select id from #tmp1)

select 
* into #tmp3 from train_examine_item_item where train_examine_item_id in (select id from #tmp2)

--添加临时字段
alter table #tmp1 add  NID nvarchar(
32)
alter table #tmp2 add  NID nvarchar(
32)
alter table #tmp2 add  NNID nvarchar(
32)
alter table #tmp3 add  NID nvarchar(
32)

--为临时字段赋值
update #tmp1
  
set nid = id

update #tmp2
  
set nid = train_examine_id,
      nnid 
= id

update #tmp3
  
set nid=train_examine_item_id


select 
* from #tmp1
select 
* from #tmp2
select 
* from #tmp3

--修改临时表的信息,并重新关联
update #tmp1
  
set id=replace(newid(),'-',''),
      examine_date 
=dateadd(month,6,dateadd(year,-2,examine_date))

update #tmp2 
  
set id=replace(newid(),'-',''),
      train_examine_id 
= #tmp1.id
  from #tmp1 
  left join  #tmp2 
  on #tmp1.nid 
= #tmp2.nid


update #tmp3 
  
set train_examine_item_id = #tmp2.id
  from #tmp2 
  left join  #tmp3 
  on #tmp2.nnid 
= #tmp3.nid

--删除临时字段
alter table #tmp1 drop column nid
alter table #tmp2 drop column nid
alter table #tmp2 drop column nnid
alter table #tmp3 drop column nid

--插入数据
insert into train_examine
select 
* from #tmp1
insert into train_examine_item
select 
* from #tmp2
insert into train_examine_item_item
select 
* from #tmp3



      

版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。
  作      者:温景良
  文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

posted @ 2008-12-03 09:21 温景良(Jason) Views( 1008) Comments( 0) Edit 收藏
 

公告

本文转自 我的程序人生博客园博客,原文链接: http://www.cnblogs.com/wenjl520/archive/2008/12/03/1346401.html,如需转载请自行联系原作者
 
相关文章
|
19天前
|
SQL 存储 关系型数据库
一文搞懂SQL优化——如何高效添加数据
**SQL优化关键点:** 1. **批量插入**提高效率,一次性建议不超过500条。 2. **手动事务**减少开销,多条插入语句用一个事务。 3. **主键顺序插入**避免页分裂,提升性能。 4. **使用`LOAD DATA INFILE`**大批量导入快速。 5. **避免主键乱序**,减少不必要的磁盘操作。 6. **选择合适主键类型**,避免UUID或长主键导致的性能问题。 7. **避免主键修改**,保持索引稳定。 这些技巧能优化数据库操作,提升系统性能。
213 4
一文搞懂SQL优化——如何高效添加数据
|
2月前
|
SQL 关系型数据库 MySQL
【MySQL进阶之路丨第十四篇】一文带你精通MySQL重复数据及SQL注入
【MySQL进阶之路丨第十四篇】一文带你精通MySQL重复数据及SQL注入
46 0
|
4月前
|
SQL 关系型数据库 MySQL
使用Flink CDC从SQL Server同步数据到MySQL
使用Flink CDC从SQL Server同步数据到MySQL
146 1
|
1月前
|
SQL 数据可视化 数据处理
使用SQL和Python处理Excel文件数据
使用SQL和Python处理Excel文件数据
51 0
|
4月前
|
SQL 大数据 HIVE
每天一道大厂SQL题【Day30】腾讯QQ(一)创建表,并插入数据
每天一道大厂SQL题【Day30】腾讯QQ(一)创建表,并插入数据
37 0
|
29天前
|
SQL 安全 数据库
第三章用sql语句操作数据
第三章用sql语句操作数据
10 0
|
1月前
|
SQL 数据库 数据库管理
SQL中如何添加数据:基础指南
SQL中如何添加数据:基础指南
24 2
|
2月前
|
SQL 数据库 数据安全/隐私保护
sql注入碰到加密数据怎么办
sql注入碰到加密数据怎么办
19 1
|
2月前
|
分布式计算 资源调度 Hadoop
Flink报错问题之Sql往kafka表写聚合数据报错如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
2月前
|
SQL 消息中间件 Kafka
Flink sql 问题之主动使数据延时一段时间如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
53 2