SQL Server 存储过程定时转存数据
SQL Server 存储过程,定时将临时表中今天之前的数据转存到对应年月的历史表中,执行如下语句创建存储过程,然后创建SQL Server 代理作业,计划设置为每天定时执行
USE [MYDATABASE]
GO
/****** Object: StoredProcedure [dbo].[sp_YourProcedure] Script Date: 2020/10/31 17:06:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[sp_YourProcedure] --创建存储过程
as
BEGIN
BEGIN TRAN Tran_MoveData --开始事务
DECLARE @tran_error int;
declare @tablename varchar(50) ; --历史表名
declare @tableDate varchar(50); --历史表对应的年月
declare @sql NVARCHAR(MAX) ,@sql1 NVARCHAR(MAX);
declare @beginTime varchar(50),@endTime varchar(50);
set @beginTime = convert(datetime,convert(varchar(7),getdate()-1,120)+'-01',120);--昨天月初零点
set @endTime =convert(datetime,convert(varchar(10),getdate(),120));--今天零点
set @tableDate = CONVERT(varchar(7), GETDATE()-1, 120);--获取昨天的年月
set @tablename = 'T_BF_'+ REPLACE(REPLACE(REPLACE(@tableDate,'-',''),' ',''),':',''); --历史表名定义为前缀加时间
set @sql = 'insert into '+@tablename+' select ID
,Filed1
,Filed2
,Filed3
,Create_Time
from T_BF_TempTable where Create_Time between'''+@beginTime+''' and '''+@endTime+''''; --转存数据
set @sql1 = ' delete from T_BF_TempTable where Create_Time between'''+@beginTime+''' and '''+@endTime+''''; --删除原数据
SET @tran_error = 0;
BEGIN TRY
exec(@sql+@sql1)
END TRY
BEGIN CATCH
SET @tran_error = @tran_error + 1
END CATCH
IF(@tran_error > 0)
BEGIN
ROLLBACK TRAN;--回滚
END
ELSE
BEGIN
COMMIT TRAN;--提交
END
end
SQL Server 存储过程定时转存数据相关推荐
- SQL Server存储过程输入参数使用表值
在2008之前如果我们想要将表作为输入参数传递给SQL Server存储过程使比较困难的,可能需要很多的逻辑处理将这些表数据作为字符串或者XML传入. 在2008中提供了表值参数.使用表值参数,可以不 ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- SQL server 存储过程的建立和调用
SQL server 存储过程的建立和调用 存储过程的建立和调用 --1.1准备测试需要的数据库:test,数据表:物料表,采购表 if not exists (select * from maste ...
- java调用存储过程 sql server_Java中调用SQL Server存储过程示例
Java中调用SQL Server存储过程示例2007-09-03 08:48来源:论坛整理作者:孟子E章责任编辑:方舟·yesky评论(3) 最近做了个Java的小项目(第一次写Java的项目哦), ...
- Microsoft SQL Server 存储过程
Microsoft SQL Server 存储过程 TRIGGER DDL触发器:主要用于防止对数据库架构.视图.表.存储过程等进行的某些修改:DDL事件是指对数据库CREATE,ALTER,DROP ...
- db2 删除存储过程_数据库教程-SQL Server存储过程使用及异常处理
SQL Server存储过程 存储过程(Procedure)是数据库重要对象之一,也是数据库学习的重点之一.本文,我们以SQL Server为例对存储过程的概念.定义.调用.删除及存储过程调用异常等通 ...
- SQL Server存储过程中使用表值作为输入参数示例
这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...
- 如何使用SQL Server链接服务器查询Excel数据
Linked servers allow SQL Server access to data from a remote data source. A remote data source can b ...
- CREATE VIEW SQL:通过SQL Server中的视图插入数据
This is the third article in a series of learning the CREATE VIEW SQL statement. So far, I'd say tha ...
最新文章
- 团队编程项目作业3-模块开发过程
- java 发送邮件_老板要实现SpringBoot发送邮件?大神发了这篇文章后,今晚准点下班...
- 基于Java语言构建区块链(四)—— 交易(UTXO)
- 腾讯研发效率领先的秘密:高效率的工具
- 从零实现一个自定义 HTML5 播放器
- JHipster生成微服务架构的应用栈(一)- 准备工作
- 热烈祝贺我刊主编郑纬民教授被提名为中国工程院2017年院士增选候选人!
- 机器学习与计算机视觉(第一个卷积神经网络)
- css的优先级及复合选择器权重计算
- 电子阅读器行业市场研究分析及未来趋势预测分析
- Shell命令-文件压缩解压缩之tar、unzip
- GBASE 8s UDR内存管理_02_mi_dalloc
- Mac-记录一些超好用的快捷键
- 史上最全的全国特产一览表,到哪就买当地最正宗的特产!!!
- 空间几何-欧拉角、四元数、重投影误差
- 服务器——如何查看自己电脑的ip地址
- 数字示波器CAN节点标定
- 内衣市场新变局,都市丽人的“不破不立”
- oracle 关于小数点为小数的格式化
- 【C++】关于回调函数
热门文章
- 使用Bootstrap框架-实现响应式页面开源案例-阿里百秀静态页面
- android之基于高德地图的移动轨迹的可视化
- 编译linux kernel samples 模块
- mate10pro android9,华为Mate10 pro和mate9 pro哪个好?华为mate9pro和Mate10pro对比区别评测...
- 小时候做过令人恶心的事 (很多哈,其中更有强到煮大.便的)
- python怎么统计单词总数_python统计文本文件内单词数量的方法
- 访达前往文件夹_Mac实用技巧之:访达/Finder
- MySQL基础 - 表达式和函数
- 关于eclipse或者Android studio直接运行项目到蓝叠模拟器
- 端到端训练 联合训练_基于元学习和人机协同的端到端对话模型