В проектах, над которыми я работал прежде, мы всегда использовали GUID в качестве наших первичных ключей, используя уникальный тип идентификатора в SQL Server.
Однако основная проблема заключается в том, что используется тип uniqueidentifier.так как ваш кластеризованный индекс через некоторое время может ухудшить производительность вашей базы данных, недавно мы выбрали следующий подход (на основе этой статьи) :
Создать столбец: guid, uniqueidentifier,ненулевое значение по умолчанию newsequentialid (), PK
Создать столбец: id, bigint, nonnull, identity (1,1)
Создать некластеризованный индекс для столбца guid, уникальный
Создать кластеризованныйиндекс для столбца id, уникальный
Таким образом, когда вы вставляете в эту новую таблицу, вам не нужно беспокоиться о ключах или идентификаторах.
Если вам нужна какая-либо форма ссылок междустарая база данных и новая, и вы МОЖЕТЕ изменить структуру старой базы данных, вы можете создать в ней столбец uniqueidentifier (или char (36), если он не поддерживаетсяrt uniqueidentifier) и назначьте guid для каждого из них, а затем создайте дополнительный столбец uniqueidentifier в новой базе данных, чтобы вы имели эту ссылку и вставили в нее это значение.Если это имеет смысл.