我必须添加一个触发器,它应该使用以下格式字符串更新列:<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)