在sql server中自定义自动生成的ID

时间:2016-06-21 15:35:10

标签: sql-server

如何以这种格式创建自定义自定义ID:

yyyymmdd-xxxxx

其中:

  • yyyymmdd是当前日期和
  • xxxxx是从0
  • 开始的自动增量整数

并且第二天xxxxx应该重新启动为0.

由于

2 个答案:

答案 0 :(得分:1)

  • 在数据库
  • 中创建一个自动数字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上保存它,你可能需要一个触发器。

答案 1 :(得分:0)

您可以考虑在插入时添加一个Identity列和一个datetime列,然后添加一个计算列以将两者放在一起。