Сброс автоинкремента по дням в visual studio - SQL
Я ищу решение для сброса идентификатора автоинкремента при смене дня.
Допустим, у вас есть заказ, и вы хотите сохранить 2 идентификационных номера... номер заказа на день и сам заказ.
Например, ORDER#123123 ORDERDAY#3 Article#Something и т. Д.
Номер заказа будет автоматически увеличиваться и будет основным, а идентификатор дня будет просто счетчиком, чтобы увидеть, сколько заказов получила компания за день.
Счетчик дня должен сбросить себя к новому дню.
В настоящее время я работаю над проектом форм Windows с локальной базой данных SQL Server.
заранее спасибо
2 ответа
Вы можете запланировать работу, которая сбрасывает идентификатор дня на 1 каждый день:
Если вы храните дату и действующий идентификатор (IDENTITY column
Вы можете легко достичь этого с
SELECT ROW_NUMBER() OVER(PARTITION BY YourDateColumn ORDER BY YourIDColumn) AS DayId
FROM Your Table
ВНИМАНИЕ: Если вы храните время вместе с датой, вы должны убедиться, что PARTITION BY
сделано с чистым значением даты!
Просто никогда не удаляйте строку физически, если вам нужно удалить, пометьте их как удаленные с помощью своего рода столбца состояния.
Вы должны использовать вместо триггера для операций удаления, чтобы обеспечить целостность данных...