Я удалил некоторые записи из таблицы и хочу их повторно вставить из таблицы резервного копирования. Столбец первичного ключа - столбец идентификатора, и он имеет более крупные значения, чем удаленные. Когда я пытаюсь вставить его ошибку бросания. Я не могу переместить столбец. Пожалуйста, дайте мне знать, если это возможно на SQL-сервере.Вставьте меньше максимального значения в столбец идентичности на SQL-сервере
2
A
ответ
2
Прежде чем это сделать, убедитесь, что в эту таблицу нет других процессов, или они могут получить сообщение об ошибке при отключении IDENTITY
. Альтернативно оберните все это в transaction with the isolation level, установленном на SERIALIZABLE
, чтобы предотвратить любые одновременные изменения, происходящие из других процессов.
- Отключить
IDENTITY
на вашем столе/столбе. - Выполняйте свои инструкции INSERT из своей резервной копии, убедитесь, что вы указали значение столбца, который был вашим столбцом
IDENTITY
. - Повторно включите
IDENTITY
на стол/столбец.
Sql:
SET IDENTITY_INSERT <your_table> OFF
-- Exceute Inserts
SET IDENTITY_INSERT <your_table> ON
Примечания
Вы должны, вероятно, выполнить свои вставки, завернутые в транзакции. Таким образом, вы можете откатить все, если произойдет сбой. У вас также не должно быть конфликтов, поскольку идентификатор всегда увеличивается, поэтому повторное добавление удаленных записей не должно создавать проблем. Возможно, вам захочется проверить фрагментацию индекса, хотя на ПК после этого.
Смежные вопросы
- 1. определение максимального значения csv столбец
- 2. Начальное значение SQL Server меньше максимального значения
- 3. Столбец идентичности не синхронизирован
- 4. Reseed столбец идентичности-не удается - текущее значение идентичности является NULL
- 5. Какова временная сложность для нахождения максимального значения меньше заданного значения?
- 6. Как мне homebrew столбец идентичности?
- 7. Присоединиться на основе максимального значения
- 8. Столбец идентичности Oracle и вставить в выбор
- 9. Вставьте новый столбец, основанный на существующей колонке значения
- 10. Получение максимального значения в ssrs
- 11. Как скопировать данные в столбец идентичности?
- 12. ColdFusion ORM пытается вставить в столбец идентичности
- 13. Вставьте данные в столбец на основе переменной
- 14. Извлечение максимального значения в столбец GridView в тесте производительности сети
- 15. Дублирующие значения в столбце идентичности
- 16. Сравните и вставьте столбец
- 17. Alter exisitng INT столбец идентичности в Sybase
- 18. Получение максимального значения колонки
- 19. Перечень всех продуктов фактора меньше максимального
- 20. Получение максимального значения за столбец в многомерном массиве
- 21. Возврат максимального значения в нескольких столбцах и смежный столбец
- 22. индекс и столбец для максимального значения в pandas dataframe
- 23. Групповой столбец максимального значения в MySQL: Self join
- 24. Вставьте дубликат ID в столбец
- 25. Вставьте значения из массива в столбец из массива?
- 26. Вставьте пустой столбец в dataframe
- 27. означают на основе максимального значения матрицы
- 28. Вставьте два значения в один столбец, включая умножение C#
- 29. Заголовок столбца заголовка на основе максимального значения
- 30. Автоматически устанавливается новое начальное значение на идентичности
это определенно возможно. опубликовать некоторые из ваших SQL и ошибки, которые вы получаете. –
Я не думаю, что вы можете пересчитать значение меньше существующего максимума, и даже если бы вы могли это сделать, это не было бы хорошей идеей. Используйте IDENTITY_INSERT, как в ответе от igor. – Paparazzi