2014-02-20 5 views
1

Я использовал SMAA для укрупняются базы данных Access 2010 в SQL Server 2005.Как вставить существующие данные в поле автоинкрементным

В процессе количество записей не были импортированы в SQL Server из-за какой-то поврежден или незаконные данные. С тех пор я очистил данные, которые не были импортированы, и сохранил их во временную таблицу в базе данных. Теперь я хочу вставить эти данные в исходную таблицу. Однако одно из полей, которое называется Task_ID, является полем auto-incrementing. Когда я запускаю стандартный запрос на вставку, результирующие данные auto-incremented и не использует импортированное значение Task_ID. Есть ли способ получить эти данные в поле без его изменения?

ответ

0

Оберните INSERT заявления с командой SET IDENTITY_INSERT:

SET IDENTITY_INSERT [table_name] ON 

... 

SET IDENTITY_INSERT [table_name] OFF 
+0

Спасибо, ребята. Я думал, что это будет что-то вроде команды Identity_Insert. К сожалению, это не так просто. Я получаю сообщение об ошибке: – user3178144

+0

Повторите попытку. Спасибо, парни. Я думал, что это будет что-то вроде команды Identity_Insert. К сожалению, это не так просто. Я получаю сообщение об ошибке: «Явное значение должно быть указано для столбца идентификации в таблице« TaskList ». Столбец Identity в этой таблице -« Задача », который является PK и который не находится в моей инструкции INSERT или SELECT, поскольку это а не в таблице для импорта из. Есть ли другой способ обойти проблему автоматического инкремента, не вступая в противоречие с PK? – user3178144

+0

Я пытаюсь сузить это. Я создал новую таблицу исторических данных, которая включает все столбцы, включая PK. Когда я пытаюсь выполнить INSERT с использованием параметра IDENTITY_INSERT, я получаю нарушение ПК. Я попытался использовать WHERE NOT EXIST только для вставки данных, если значение PK не существует, но я не что-то вроде того, что можно сделать: – user3178144

Смежные вопросы