将表中的数据保留一周的数据其余全部转移
用于数据库迁移。
code:
USE Kyt
GO
/* Daily_StockSettlement 保留最近一周数据,其他全部迁移至历史数据库表(KYT_History.dbo.Daily_StockSettlement_his) */
-- 此过程适合sqlserv 2005 或2005以上的版本
-- SELECT TOP 100 DSS_CreateDate FROM Daily_StockSettlement ORDER BY DSS_CreateDate ASC
-- SELECT TOP 100 DSS_CreateDate FROM KYT_History.dbo.Daily_StockSettlement_his ORDER BY DSS_CreateDate ASC
-- SELECT count(1) FROM Daily_StockSettlement
DECLARE @mindate DATETIME,@maxdate DATETIME,@maxday INT,@maxpage INT,@minday INT
SET @maxday = 1 --每次操作【*】天的数据 如1天,当每天的数量太大时,建议减小此值(现在数据中一天约20000条数据)
SET @minday = 9 --保留最近 【*】 天的数据 如 9天
--获取当前表数据的最前一条(order by 创建时间)
SELECT TOP 1 @mindate = DSS_CreateDate FROM Daily_StockSettlement ORDER BY DSS_CreateDate ASC
--获取当前表数据的最后一条(order by 创建时间)
SELECT TOP 1 @maxdate = DSS_CreateDate FROM Daily_StockSettlement ORDER BY DSS_CreateDate DESC
--设置循环的次数
SET @maxpage = ((DATEDIFF(DAY,@mindate,@maxdate))-@minday)/@maxday
PRINT '共需要执行 '+ convert(varchar(10), @maxpage)+' 次循环。'
-- 开始循环数据
WHILE (@maxpage >= 0)
BEGIN
PRINT 'NO: '+convert(varchar(10), @maxpage)+' 次循环 开始执行。。。'
---- 使用事物 将数据移动到历史表
BEGIN TRANSACTION
BEGIN TRY
IF(@maxpage > 0)
BEGIN
--最后两天的计算方式
SET @mindate = DATEADD(DAY,(@maxday),@mindate)
END
ELSE
BEGIN
--最后一天的计算方式,最后一天
SET @mindate = DATEADD(DAY,(DATEDIFF(DAY,@mindate,@maxdate))-(@minday-1),@mindate)
END
PRINT '开始将旧表的数据插入到新表中:'
INSERT INTO KYT_History.dbo.Daily_StockSettlement_his SELECT * FROM Daily_StockSettlement WHERE DSS_CreateDate < @mindate ORDER BY DSS_CreateDate ASC
PRINT '开始删除旧表中的数据:'
DELETE FROM Daily_StockSettlement WHERE DSS_CreateDate < @mindate
PRINT '正在执行 '+ convert(varchar(10), @maxpage)+' 次循环,没有发生错误,正在执行 Commit 命令。'
--提交事物
COMMIT TRANSACTION
--最后将maxpage-1
SET @maxpage = @maxpage-1
--等待20秒后继续运行此循环
WAITFOR DELAY '00:00:10';
END TRY
BEGIN CATCH
PRINT '正在执行 '+ convert(varchar(10), @maxpage)+' 次循环,并且发生错误:执行 Rollback 命令。'
PRINT '错误内容:'+ERROR_MESSAGE()
--如果发生异常 抛出错误并回滚
ROLLBACK TRANSACTION
--如果发生异常马上结束循环
BREAK
END CATCH
END --while end
GO
/*
select ERROR_LINE() as Line,
ERROR_MESSAGE() as message1,
ERROR_NUMBER() as number,
ERROR_PROCEDURE() as proc1,
ERROR_SEVERITY() as severity,
ERROR_STATE() as state1
)*/
分享到:
相关推荐
- **备份保留周期**:决定备份数据保存的时间长度,例如一周、一天或一小时等。 ### 备份策略与重要说明 文档中提到的重要说明强调了该备份策略并非实时备份,可能会导致部分数据丢失的风险,并建议对于重要级别的...
本文将深入探讨如何使用Java编程语言实现从一个数据库中定时自动抽取数据并复制到另一个数据库,以达到数据库间的实时或近实时同步。 首先,我们需要了解基础概念。Java是一种广泛使用的面向对象的编程语言,具有...
3. 勾选将数据显示在整列中的字段,并将其拖到“列标签”区域内。 4. 拖放行、列字段后的数据透视表。 5. 从“数据透视表字段列表”任务窗格中,勾选字段“数量”复选项,并将其拖到“∑数值”区域内。 在 Excel ...
在实际应用中,有时我们需要将数据从外部文件如Excel导入到AMESim中,以便进行复杂的计算或者设定参数。本教程将详细介绍如何高效地进行AMESim表格数据的导入。 首先,我们来理解“AMESim存数据”。在AMESim中,...
2. **数据导入与导出**:如果需要在不同环境之间转移数据,可以使用`docker cp`命令将数据卷的内容复制到本地文件系统,然后在另一环境中再复制回去。例如,将数据导出: ``` docker cp db_container:/var/lib/...
1. 数据透视图:除了表格形式外,还可以将数据透视表转换为图表,如柱状图、饼图、线图等,以便更直观地展示数据趋势和分布。 2. 分组与分层:对行或列字段进行分组,可以创建层次结构,便于比较不同级别的数据。 3....
在电力系统中,变电站是电力传输网络的关键节点,负责电压等级转换、功率分配和电能质量监控。指针式仪表是变电站中常见的监测设备,用于实时显示电流、电压、频率、功率等电气参数。本数据集"变电站指针式仪表数据...
数据库数据转移是指将一个数据库中的数据迁移到另一个数据库的过程。这种操作通常在以下几种情况下进行:当需要更换数据库系统时;为了备份数据;或者在进行系统升级、迁移至新的服务器等情况下。 ### 数据转移的...
在解决方案中,我们使用的是按照8周将单表分为8个区,每周一都会将最早一周的分区Drop掉,然后新建下一周的分区。这样可以大大减少数据的查询时间。 时间触发器 我们使用MySQL的时间触发器来实现定时任务。首先,...
题目中的描述指出,需要将两张无关联表中的数据列合并到一个结果集中。这里提到的“无关联表”意味着这两张表之间没有直接的关联字段或键值,因此不能直接通过JOIN等常规方式来实现数据的联接。为了完成这个任务,...
标题“DataGridView中直接保存修改的数据”指的是如何在用户对`DataGridView`中的数据进行编辑后,将这些更改直接保存到后台数据库。描述中提到的“在单元格中直接修改,附带数据库2005版”,意味着我们将讨论在用户...
这些存储器即使在电源关闭后也能保留数据,使得单片机在下次上电时可以读取之前保存的信息。 在STC89C52中,虽然主要的程序存储器是Flash,但也可以利用内部的EEPROM或者模拟EEPROM的方式来实现数据的持久化存储。...
标题 "全球主要国家数据表mysql" 指的是一个专门设计用于MySQL数据库的表格,包含了全球各个国家的主要信息。这个数据表可能包含了各国的基本统计数据,如国家名称、首都、人口、面积、货币、国际电话区号等。这些...
在本教程中,我们将专注于“利用UPDATE语句批量更新数据表中的数据”这一主题。UPDATE语句是SQL语言的一个重要部分,用于修改已存在于数据库表中的记录。在VB中,我们可以结合ADO(ActiveX Data Objects)库来执行...
在关闭时,可以将数据写入属性,打开时读取。这种方式对小型数据集很有效,但对于大量数据可能不太合适。 5. **全局变量与簇**: 如果多个VI需要共享相同的数据,可以使用全局变量或簇。全局变量在整个工程中可见...
省市区管理sql数据表设计、以及全国省市区全部最新数据,省市区管理sql数据表设计、以及全国省市区全部最新数据,省市区管理sql数据表设计、以及全国省市区全部最新数据,
在本项目中,我们使用Python来实现实时读取串口数据,并利用多线程技术将这些数据自动保存到Excel文件中。此外,该项目还提供了可扩展性,可以集成PyQT5图形用户界面(GUI)来增强用户体验。 首先,让我们深入了解...
而Excel则是Microsoft Office套件中的一个关键组件,用于处理电子表格和数据分析。当我们需要在C++程序中将数据保存到Excel文件时,通常会涉及到文件I/O操作以及对Excel文件格式的理解。 在C++中实现数据保存到...
在数据的读取和保存中,需要定义数据的格式,包括数据长度、起始标志、数据长度、数据区、校验码等。例如,数据长度可以是 8BIT/16BIT/32BIT,起始标志可以是 0xAB/其他,数据长度可以是 8/16/32/64/128/256 等,...
金蝶EAS8.5数据字典,全部表结构说明,包含超级详细的表、字段说明,以及关联字段说明。