?<2017年11月27日16:39:10>
--Author:<ldq>
-- Description: <數(shù)據(jù)在寫入數(shù)據(jù)庫之前残炮,一般數(shù)據(jù)庫沒有做唯一值或者其它的原因?qū)е聰?shù)據(jù)插入可以無限重復(fù)插入時(shí)镐依,用sql的存儲過程來簡單實(shí)現(xiàn)不重復(fù)插入數(shù)據(jù)信粮。>
-- =============================================
ALTER PROCEDURE [dbo].[Hq_Attendance]
@A0188 INT, @CARD_TIME DATETIME, @ACTIONTIME DATETIME
AS
--數(shù)據(jù)寫入HR數(shù)據(jù)庫搀菩,不重復(fù)數(shù)據(jù)
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,'考勤機(jī)接收',@ACTIONTIME,'2');
END
COMMIT
<!--數(shù)據(jù)調(diào)用存儲過程-->
<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>