У нас есть большая база данных с запросами, на каждую ссылку ссылается с помощью Guid. Guid не очень удобен для клиентов, поэтому мы хотим использовать дополнительный 5-значный «человеческий идентификатор» (хорошо, поскольку у нас, вероятно, не будет более 99999 активных запросов в любое время, и это нормально, если Humanuid ссылается на несколько запросов поскольку они не используются ни для чего важного).
1) Можно ли как-нибудь сбросить столбец IDENTITY на 1 после 99999?
Мой текущий способ решения этой проблемы - использовать столбец INT IDENTITY(1,1) NOT NULL
, а при представлении HumanId взять HumanId % 100000
.
2) Есть ли способ автоматически «случайным образом распределить» идентификаторы по [0..99999], чтобы два созданных друг за другом запроса не получали соседние идентификаторы? Я думаю, я ищу двустороннюю хэш-функцию "один к одному" ??
... В идеале я хотел бы создать это с помощью T-SQL, автоматически создавая эти идентификаторы при создании запроса.