美文网首页
SQL Server--数据用存储过程去重插入

SQL Server--数据用存储过程去重插入

作者: 空白_ | 来源:发表于2017-12-06 17:11 被阅读32次

 <2017年11月27日16:39:10>

--Author:<ldq>

-- Description: <数据在写入数据库之前,一般数据库没有做唯一值或者其它的原因导致数据插入可以无限重复插入时,用sql的存储过程来简单实现不重复插入数据。>

-- =============================================

ALTER PROCEDURE [dbo].[Hq_Attendance]

@A0188 INT, @CARD_TIME DATETIME, @ACTIONTIME DATETIME

AS

--数据写入HR数据库,不重复数据

BEGIN TRANSACTION

--先尝试更新记录占位置

UPDATE K_CARD WITH(HOLDLOCK)

SET [CARD_TIME] = [CARD_TIME]

WHERE A0188 = @A0188 and CARD_TIME = @CARD_TIME;

--如果更新操作没有影响行,证明记录不存在,则插入

IF @@ROWCOUNT<1

BEGIN

INSERT K_CARD ( A0188,CARD_TIME,SJLY,ACTIONTIME,SIGNED )

VALUES ( @A0188,@CARD_TIME,'考勤机接收',@ACTIONTIME,'2');

END

COMMIT


<!--数据调用存储过程-->

<insert  id="Storedprocedure" parameterType="java.util.Map"statementType="CALLABLE">

<![CDATA[

{call Hq_Attendance

(

#{A0188,mode=IN,jdbcType=VARCHAR},

#{CARD_TIME,mode=IN,jdbcType=VARCHAR},

#{ACTIONTIME,mode=IN,jdbcType=VARCHAR}

</insert>

相关文章

  • SQL Server--数据用存储过程去重插入

    <2017年11月27日16:39:10> --Author: -- Description: <数据在...

  • mysql优化

    SQL存储过程编写插入测试数据 ---- ### 生成0-100的随机数值 select CEIL((RAND()...

  • Sql语句整理(一)

    使用存储过程插入数据

  • mysql性能优化

    SQL存储过程编写插入测试数据 生成0-100的随机数值 函数声明语法 函数调用语法 删除函数 SQL语句优化 1...

  • MySQL插入一亿条数据

    创建数据表 创建用户表 创建存储过程 调用存储过程插入一亿条数据 查看表空间 插入数据测试统计 查询测试

  • WEB__backend--MongoDb

    mongodb database server--存储数据databases--仓库,对一类数据的抽象处理(eg洗...

  • SQL Server存储过程总结

    SQL Server存储过程总结 存储过程简介: 存储过程(Stored Procedure)是在大型数据库中,一...

  • Sql sever 清空数据库所有数据

    1、清空SQL Server数据库中所有表数据编写存储过程脚本: 说明: 存储过程sp_MSForEachTabl...

  • sql基础(4)存储过程

    (一)存储过程常用SQL命令 -- 存储过程 use test #打开数据库 show PROCE...

  • 8、MySQL存储过程

    存储过程 存储过程是一个SQL语句集合,当主动去调用存储过程时,其中内部的SQL语句会按照逻辑执行。 1、创建存储...

网友评论

      本文标题:SQL Server--数据用存储过程去重插入

      本文链接:https://www.haomeiwen.com/subject/qarlixtx.html