SQL Server中的自定义自动化ID



如何以这种格式创建自定义自动生成的ID:

yyyymmdd-xxxxx

其中:

  • yyyymmdd是现在的日期,
  • xxxxx是从0
  • 开始的自动增量整数号码

第二天xxxxx应重新启动至0。

谢谢

  • 在您的DB中创建一个自动 ID
  • 保存每个插入行的日期/时间。

然后使用ROW_NUMBER()功能

SELECT *,
       dayField + '-' + CAST(rn AS VARCHAR(100))
FROM (
        SELECT  ID, dateTimeField,
                -- truncate the time and convert to yyyymmdd
                CONVERT(VARCHAR(10), cast(dateField As Date), 112) as dayField,        
                ROW_NUMBER() OVER (PARITION BY cast(dateField As Date)
                                   ORDER BY dateTimeField) as rn
                                  -- or just ORDER BY ID
     ) T

现在,如果要保存在DB上,则可能需要触发。

您可能会考虑包括一个身份列和一个DateTime列,该列将在插入上设置并添加一个计算的列将两个列组合在一起。

最新更新