我想为我的门票设置每日身份证。
我可以告诉SQL Server每天从0开始增加吗?然后明天再从0开始?
请解释你的答案。
答案 0 :(得分:2)
我建议您在数据库上创建一个插入数据的过程,因此您必须执行类似
的操作declare @newID int
select @newID = max(ID)+1 from table where date=@today
if (@newID is null) then @newID=0
然后在查询中使用@newID进行插入。 我假设你桌上有一个日期字段
答案 1 :(得分:0)
我认为您需要这样的查询:
SELECT
*,
ROW_NUMBER() OVER (
PARTITION BY CAST(yourDateField as date)
ORDER BY yourDateField
) - 1 AS newId
FROM
yourTable;
ROW_NUMBER
是一个窗口函数,从{1}}部分中所选字段排序的记录数开始,并根据ORDER BY
部分中的所选字段进行重置。
注意:当我想要dataTime字段的日期部分时,我使用`CAST(dateTimeField AS date)。
HTH