【发布时间】:2014-08-11 16:30:47
【问题描述】:
我还是 SQL 的初学者,所以请多多包涵。我需要创建一个存储表单信息的表。每个表单都有一个与之关联的 ID,它有两个部分。第一部分是 MMYY,第二部分是 5 位自增整数。示例 ID 为 0714-00001。并且每次更改月份时,5 位编号都应该重新开始。所以,我希望这些列看起来像这样:
订单号。 | Order_ID
----------------------------
0714 | 0001
0714 | 0002
0714 | 0003
0814 | 0001
0814 | 0002
0914 | 0001
当 SQL-Server 中的月份发生变化时,有什么方法可以让自动递增列重新开始递增?
我也环顾四周,很少有答案建议使用 PHP 来执行此操作,但是因为我使用的是 CMS,所以我无法输入自己的任何 PHP 脚本。
更新: 我最终只是在 CMS 站点中编写了一个 IF 语句,用于检查表单中输入的 order_no 是否与现有表中的 order_no 匹配。如果它们匹配,则将新行插入现有表中,如果它们不匹配,则将现有表中的所有数据复制到备份表中,然后将现有表截断,然后将新表插入。从而允许表再次从 1 重新开始计数。
【问题讨论】:
-
安排sql server job 以您给定的时间间隔运行。让它在该列上执行 DBCC Checkident 重新设置 id。
标签: sql sql-server primary-key auto-increment composite-primary-key