码迷,mamicode.com
首页 > 其他好文 > 详细

序列表 批量的含义

时间:2019-03-28 16:56:44      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:ansi   com   gets   图片   count   and   enc   场景   begin   

USE DBname
GO
/****** Object:  StoredProcedure [dbo].[PROC_GETSEQUENCE_BATCH]    Script Date: 3/28/2019 3:55:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[PROC_GETSEQUENCE_BATCH]
    @TABLENAME VARCHAR(20),
    @USERID VARCHAR(50),
    @BATCH_NUM INT,
    @SEQNUM INT OUTPUT
AS
DECLARE @STEP INT, @NEXTID INT
BEGIN
    UPDATE SSEQUENCE WITH (ROWLOCK)
    SET
        @NEXTID = SEQ_NUM = ISNULL(SEQ_NUM, SEQ_BOUNDARY_L) + SEQ_STEP * abs(ISNULL(@BATCH_NUM,0)),
        @STEP = SEQ_STEP,
        SEQ_UPDATE_DT = GETDATE(),
        SEQ_UPDATEUID = @USERID
    WHERE
        UPPER(SEQ_TABLE) = UPPER(@TABLENAME)
        AND SEQ_PARTITION_KEY = 128
    
    SELECT @SEQNUM = @NEXTID - @STEP * abs(ISNULL(@BATCH_NUM,0))
END

  技术图片

在数据测试的时候,发现开发最容易犯的错是:

seq_num = 需要加的值+ seq_num  

在需要加的值这边用的是select count(*) from tablexxx, 会有null的场景出现,导致最终seq_num被更新为null+数字=null

序列表 批量的含义

标签:ansi   com   gets   图片   count   and   enc   场景   begin   

原文地址:https://www.cnblogs.com/qianjinyan/p/10616048.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!