如何设置每日ID

时间:2012-02-26 13:20:51

标签: sql sql-server

我想为我的门票设置每日身份证。

我可以告诉SQL Server每天从0开始增加吗?然后明天再从0开始?

请解释你的答案。

2 个答案:

答案 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