Это сценарий проектирования базы данных, в котором есть несколько таблиц со схемой:
TABLEx (Id varchar(20), BackupTime datetimeoffset, Name varchar(50), Modstamp datetimeoffset)
Приложение построено на основе схемы базы данных, которая (Id, BackupTime) является составным ключом.Каждый раз, когда данные извлекаются в определенный момент времени со значениями
Id, Name, Modstamp
1, TestAccount, 2018-09-17T19:54:55.000Z
2, TestAccount1, 2018-09-17T19:54:55.000Z
3, DummyAccount2, 2018-09-17T20:58:51.000Z
, вставляется со значением BackupTime в качестве текущего времени.Предполагалось, что идентификаторы являются уникальными при получении.
Это оказалось ложным, когда я столкнулся со сценарием для определенного источника данных, где данные выглядят так:
Id, Name, ReferenceValue, Modstamp
1, Problem1, Reference1, 2018-09-17T19:54:55.000Z
1, Problem2, Reference1, 2018-09-17T19:54:55.000Z
1, Problem1, Reference2, 2018-09-17T20:58:51.000Z
и, судя по всему, данные основаны на составном ключе [Name, ReferenceValue].Я не предпочел бы изменить приложение из-за этого конкретного аберранта.Данные основаны на полях Id и BackupTime для других операций.Я хотел создать последовательность на основе составного ключа [Name, ReferenceValue].Есть ли способ сгенерировать автопоследовательность varchar (20) для этого конкретного сценария?Это был бы способ создать хеш, который соответствует varchar (20).