Там какие-либо последствия используют Отрицательные Первичные ключи для таблиц (Инкремент идентификационных данных-1, Семя Идентификационных данных-1 в SQL Server 2005)?
Причина этого, мы создаем новую базу данных для замены существующей. Существуют подобные таблицы между этими двумя базами данных, и мы хотели бы, чтобы "источник" информации был очевиден для наших приложений. Подход должен создать представления что таблицы объединений от обеих баз данных. Отрицательный PKs гарантирует, чтобы идентификационные данные не накладывались.
Как уже говорили другие, с базой данных все в порядке.
Но это будет проблемой для приложения .NET, использующего DataSet + DataAdapter, поскольку они используют отрицательные ключи в качестве временных ключей для новых записей.
Другие уровни доступа к данным могут использовать аналогичные приемы.
Не проблема.
Это немного неортодоксально, но в остальном - нормально.
По умолчанию, предлагаемый SQL Server, это просто значение по умолчанию, и его можно изменить в соответствии с потребностями. Похоже, у вас есть хороший компромисс.
Это совершенно нормально с точки зрения SQL Server. Настоящий вопрос будет в вашем приложении.
Если отрицательные числа что-то сломают, используйте четные числа для одного и нечетные числа для другого.
Другой вариант - добавить к устаревшим ключам префикс типа «OLD_». Единственная проблема в том, что ваше ключевое поле не будет числовым.
Если у вас должны быть цифровые клавиши, вы можете ввести столбец «устаревший» индикатор, а первичный ключ будет представлять собой комбинацию числового идентификатора и устаревшего индикатора (надеюсь, эта комбинация должна быть уникальной).
Вы захотите просмотреть старый код и поискать, где разработчики сортировали по первичному ключу как ленивый/небрежный способ сортировки по дате (потому что identity pk's обычно сильно или идеально коррелируют со временем).
Проблема только в том, что вы не сможете добавить третий источник данных таким образом!
Это не проблема. Просто убедитесь, что ваш столбец Identity имеет тип, допускающий отрицательные числа.