请教:
sql2008里面,当插入数据时并且本条数据里某一字段比如(weight)大于零时用触发器如何按日期和序号自动产生流水号,比如在Treedb表里面有四个字段:ID(自动增加),riqi(日期),liuishuihao(流水号),weight(重量),每次增加数据的时候自动产生流水号比如20230707000001每天序号从1开始自增。谢谢!
CREATE TRIGGER trg
ON Treedb
AFTER INSERT
AS
BEGIN
DECLARE @dateStr varchar(8)
DECLARE @serialNo int
SET @dateStr = CONVERT(varchar(8), GETDATE(), 12)
SELECT @serialNo = MAX(liuishuihao)
FROM Treedb
WHERE riqi = @dateStr
IF @serialNo IS NULL
BEGIN
SET @serialNo = 1
END
ELSE
BEGIN
SET @serialNo = @serialNo + 1
END
UPDATE Treedb
SET liuishuihao = @dateStr + RIGHT('000000' + CAST(@serialNo as varchar(6)), 6)
WHERE ID IN (SELECT ID FROM inserted)
END