小编Pav*_*gin的帖子

SQL Server 2008:每天重新启动的序列

我必须添加一个触发器,它应该使用以下格式字符串更新列:<current_date>_<per_day_incremental_id>,例如2015-10-01_36. Id 必须是增量的,并且允许有间隙。

我的方法相当天真:制作一个包含当前日期和当前序列值的表,并在其中维护一条记录:

create table DailySequence
(
    date date,
    sequence int
)

insert into DailySequence values (getdate(), 1);

CREATE TRIGGER MakeHumanReadableId ON dbo.AuditMeasures
FOR INSERT
AS
    DECLARE @ret int;
    DECLARE @tempDate date;
    DECLARE @nowDate date;

    SET @nowDate = getdate();

    SELECT @ret = t.sequence, @tempDate = t.date from DailySequence as t;

    IF @nowDate = @tempDate
    BEGIN
        SET @ret = @ret + 1;

        UPDATE DailySequence 
        SET sequence = @ret;
    END
    ELSE
    BEGIN
        SET @ret = 0;

        UPDATE …
Run Code Online (Sandbox Code Playgroud)

sql-server sequence t-sql sql-server-2008-r2

8
推荐指数
1
解决办法
3457
查看次数

标签 统计

sequence ×1

sql-server ×1

sql-server-2008-r2 ×1

t-sql ×1