Сброс автоинкремента по дням в visual studio - SQL

Я ищу решение для сброса идентификатора автоинкремента при смене дня.

Допустим, у вас есть заказ, и вы хотите сохранить 2 идентификационных номера... номер заказа на день и сам заказ.

Например, ORDER#123123 ORDERDAY#3 Article#Something и т. Д.

Номер заказа будет автоматически увеличиваться и будет основным, а идентификатор дня будет просто счетчиком, чтобы увидеть, сколько заказов получила компания за день.

Счетчик дня должен сбросить себя к новому дню.

В настоящее время я работаю над проектом форм Windows с локальной базой данных SQL Server.

заранее спасибо

2 ответа

Решение

Вы можете запланировать работу, которая сбрасывает идентификатор дня на 1 каждый день:

MSDN SQL Server - запланировать работу

Если вы храните дату и действующий идентификатор (IDENTITY columnВы можете легко достичь этого с

SELECT ROW_NUMBER() OVER(PARTITION BY YourDateColumn ORDER BY YourIDColumn) AS DayId 
FROM Your Table

ВНИМАНИЕ: Если вы храните время вместе с датой, вы должны убедиться, что PARTITION BYсделано с чистым значением даты!

Просто никогда не удаляйте строку физически, если вам нужно удалить, пометьте их как удаленные с помощью своего рода столбца состояния.

Вы должны использовать вместо триггера для операций удаления, чтобы обеспечить целостность данных...

Другие вопросы по тегам