[转][SQL]转移数据到历史表步骤

-- 迁移表
1、备份数据
SELECT * INTO {0}_{1} FROM {0}
2、清空数据
TRUNCATE TABLE {0}
3、回填数据
INSERT INTO {0} SELECT {2} FROM {0}_{1} WHERE {3}

如果表有外键,不适合采用此方法。

查询所有表的记录数 SQL 语句:

来自:https://www.cnblogs.com/dahuzizyd/archive/2004/07/19/25565.html

SELECT ‘Owner‘=CONVERT(CHAR(10),t.TABLE_SCHEMA),
      ‘Table Name‘=CONVERT(CHAR(25),t.TABLE_NAME),
      ‘Record Count‘=MAX(i.ROWS)
FROM SYSINDEXES i, INFORMATION_SCHEMA.TABLES t
WHERE t.TABLE_NAME = OBJECT_NAME(i.ID)
      AND t.TABLE_TYPE = ‘BASE TABLE‘
GROUP BY t.TABLE_SCHEMA, t.TABLE_NAME
ORDER BY MAX(i.ROWS) DESC 

原文地址:https://www.cnblogs.com/z5337/p/12590834.html

时间: 2024-10-13 11:38:00

[转][SQL]转移数据到历史表步骤的相关文章

oracle数据向历史表数据迁移————procedure

create or replace procedure remove_refund_his_pro isbegin declare cursor refund_query_cur is select rowid from ucmp_realtime_refund_query t1 where t1.apply_tm<= TRUNC(ADD_MONTHS(SYSDATE, -3),'DD') AND ROWNUM <= '100000000'; TYPE rowid_table_type is

Mysql存储过程历史表备份

应用背景 1.采集系统需要将实时数据存入历史表,利用mysql的事件,每小时存一次采集数据: 2.每个月1号凌晨1点,将历史表备份,名称命名为his_aic_20190501 01:00,将原表清空. 1.历史表备份 1.1存储过程 BEGIN INSERT INTO his_dic (ParentID,PointID,DICName,DICValue,StateDesc,AlarmThreshold,AlarmLevel,AlarmEnable,UpdatedTime) select Pare

SQL Server -&gt;&gt; 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表)

原文:SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表) 作为SQL Server 2016(CTP3.x)的另一个新特性,Temporal Table(历史表)记录了表历史上任何时间点所有的数据改动.Temporal Table其实早在ANSI SQL 2011就提出了,而SAP HANA, DB2和Oracle早已在它们的产品中加入/实现了这一特性.所以说微软其实是落后了几个竞争对手.既然在CTP3.0中加入了,相信

SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)

1/首先建立数据表 CREATE TABLE BasicMsg( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位地址码 . FlightID Varchar(10) NULL, --航班号) 2/ 建立存储过程 USE DF17DataProIF EXISTS (SELECT * FROM SYS.PROCEDURES WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[BulkDataP

[生产库实战] 采用存储过程对生产线历史表数据进行归档

生产线历史数据归档是数据库运维的一项日常基本工作.在建表设计时,通常都将数据流水表(如:日志.用户登录历史,软件下载记录,用户属性更改历史表等)设计为范围分区表.间隔分区表(11G),当超过业务要求的保留范围时,此数据基本是静态数据且应用程序再不对其进行访问,但有可能会由于某些特殊要求需要手动查询.在这个情况下,都将其数据从生产库归档至历史库,并对其进行压缩保存,如果超出特殊要求查询的范围,那就直接将其导出压缩备份到磁带. 在Oracle数据库中,用做表数据归档操作的方法很多,如:exp/imp

在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题

原文:在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\KK.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 问题: 消息 15281,级别 16,状态 1,第 1 行 SQL Server 阻止了对组件 'Ad Hoc Di

使用SQL语句清空数据库所有表的数据

近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用SQL语句一次清空所有数据.找到了三种方法进行清空.使用的数据库为MS SQL SERVER.1.搜索出所有表名,构造为一条SQL语句 declare @trun_name varchar(8000)set @trun_name='' select @trun_name=@trun_name + 'truncate table ' + [name] + ' ' from syso

oracle 、sql server 、mysql 复制表数据

我们知道在oracle 中复制表数据的方式是使用 create table table_name as select * from table_name 而在sql server  中是不能这么使用的 语句如下: select * into table_name from table_name; 而在 mysql 中有两种方式 1. create table a like b 2. 类似oracle的方式 create table table_name as select * from tabl

清空SQL Server数据库中所有表数据的方法

其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录. 说道删除数据记录,