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 存储过程定时转存数据相关推荐

  1. SQL Server存储过程输入参数使用表值

    在2008之前如果我们想要将表作为输入参数传递给SQL Server存储过程使比较困难的,可能需要很多的逻辑处理将这些表数据作为字符串或者XML传入. 在2008中提供了表值参数.使用表值参数,可以不 ...

  2. 清空SQL Server数据库中所有表数据的方法(转)

    清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...

  3. SQL server 存储过程的建立和调用

    SQL server 存储过程的建立和调用 存储过程的建立和调用 --1.1准备测试需要的数据库:test,数据表:物料表,采购表 if not exists (select * from maste ...

  4. java调用存储过程 sql server_Java中调用SQL Server存储过程示例

    Java中调用SQL Server存储过程示例2007-09-03 08:48来源:论坛整理作者:孟子E章责任编辑:方舟·yesky评论(3) 最近做了个Java的小项目(第一次写Java的项目哦), ...

  5. Microsoft SQL Server 存储过程

    Microsoft SQL Server 存储过程 TRIGGER DDL触发器:主要用于防止对数据库架构.视图.表.存储过程等进行的某些修改:DDL事件是指对数据库CREATE,ALTER,DROP ...

  6. db2 删除存储过程_数据库教程-SQL Server存储过程使用及异常处理

    SQL Server存储过程 存储过程(Procedure)是数据库重要对象之一,也是数据库学习的重点之一.本文,我们以SQL Server为例对存储过程的概念.定义.调用.删除及存储过程调用异常等通 ...

  7. SQL Server存储过程中使用表值作为输入参数示例

    这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...

  8. 如何使用SQL Server链接服务器查询Excel数据

    Linked servers allow SQL Server access to data from a remote data source. A remote data source can b ...

  9. 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 ...

最新文章

  1. 团队编程项目作业3-模块开发过程
  2. java 发送邮件_老板要实现SpringBoot发送邮件?大神发了这篇文章后,今晚准点下班...
  3. 基于Java语言构建区块链(四)—— 交易(UTXO)
  4. 腾讯研发效率领先的秘密:高效率的工具
  5. 从零实现一个自定义 HTML5 播放器
  6. JHipster生成微服务架构的应用栈(一)- 准备工作
  7. 热烈祝贺我刊主编郑纬民教授被提名为中国工程院2017年院士增选候选人!
  8. 机器学习与计算机视觉(第一个卷积神经网络)
  9. css的优先级及复合选择器权重计算
  10. 电子阅读器行业市场研究分析及未来趋势预测分析
  11. Shell命令-文件压缩解压缩之tar、unzip
  12. GBASE 8s UDR内存管理_02_mi_dalloc
  13. Mac-记录一些超好用的快捷键
  14. 史上最全的全国特产一览表,到哪就买当地最正宗的特产!!!
  15. 空间几何-欧拉角、四元数、重投影误差
  16. 服务器——如何查看自己电脑的ip地址
  17. 数字示波器CAN节点标定
  18. 内衣市场新变局,都市丽人的“不破不立”
  19. oracle 关于小数点为小数的格式化
  20. 【C++】关于回调函数

热门文章

  1. 使用Bootstrap框架-实现响应式页面开源案例-阿里百秀静态页面
  2. android之基于高德地图的移动轨迹的可视化
  3. 编译linux kernel samples 模块
  4. mate10pro android9,华为Mate10 pro和mate9 pro哪个好?华为mate9pro和Mate10pro对比区别评测...
  5. 小时候做过令人恶心的事 (很多哈,其中更有强到煮大.便的)
  6. python怎么统计单词总数_python统计文本文件内单词数量的方法
  7. 访达前往文件夹_Mac实用技巧之:访达/Finder
  8. MySQL基础 - 表达式和函数
  9. 关于eclipse或者Android studio直接运行项目到蓝叠模拟器
  10. 端到端训练 联合训练_基于元学习和人机协同的端到端对话模型