在 visual studio - SQL 中按天重置自动增量
Reset Auto Increment by day in visual studio - SQL
我正在寻找一种解决方案来重置按天更改的自动增量 ID。
假设您有一个订单并且想要存储 2 个标识号...
daylie 订单号和订单本身。
例如ORDER#123123 ORDERDAY#3 Article#Something 等
订单号将自动递增并且是主要的,而日期 ID 将只是一个计数器,用于查看公司一天收到多少订单。
日期计数器必须在新的一天重新设置。
我目前正在使用本地 SQL 服务器数据库开发 windows 表单项目。
提前致谢
如果您存储日期和 运行 ID(IDENTITY column
),您可以使用
轻松实现
SELECT ROW_NUMBER() OVER(PARTITION BY YourDateColumn ORDER BY YourIDColumn) AS DayId
FROM Your Table
注意:如果将时间与日期一起存储,则必须确保 PARTITION BY
是使用纯日期值完成的!
切勿物理删除行,如果您需要删除,请使用某种状态列将其标记为已删除。
您应该对删除操作使用触发器而不是触发器以确保数据完整性...
您可以安排每天将日期 ID 重置为 1 的作业:
我正在寻找一种解决方案来重置按天更改的自动增量 ID。
假设您有一个订单并且想要存储 2 个标识号... daylie 订单号和订单本身。
例如ORDER#123123 ORDERDAY#3 Article#Something 等
订单号将自动递增并且是主要的,而日期 ID 将只是一个计数器,用于查看公司一天收到多少订单。
日期计数器必须在新的一天重新设置。
我目前正在使用本地 SQL 服务器数据库开发 windows 表单项目。
提前致谢
如果您存储日期和 运行 ID(IDENTITY column
),您可以使用
SELECT ROW_NUMBER() OVER(PARTITION BY YourDateColumn ORDER BY YourIDColumn) AS DayId
FROM Your Table
注意:如果将时间与日期一起存储,则必须确保 PARTITION BY
是使用纯日期值完成的!
切勿物理删除行,如果您需要删除,请使用某种状态列将其标记为已删除。
您应该对删除操作使用触发器而不是触发器以确保数据完整性...
您可以安排每天将日期 ID 重置为 1 的作业: