Проблемы с экспортом данных SQL Server 2008 R2
Я пытаюсь экспортировать данные из моей производственной БД в мою БД разработки, но я получаю эту ошибку:
сообщение об ошибке 0xc0202049: задача потока данных 1: ошибка вставки в столбец "id"только для чтения. (Мастер импорта и экспорта SQL Server)
есть ли способ проверить, какие колонки, потому что у меня есть 20 таблиц, все они используют имя столбца id
или, по крайней мере, получить лучший отчет об ошибке?
5 ответов
просто нажмите на кнопку Edit mappings
при выборе таблиц для импорта из. и проверьте на . И вы должны делать это для каждого выбранного стола. Затем вы можете завершить импорт. Мне помогли в той же ситуации.
если идентификатор столбца является столбцом идентификатора, он, вероятно, настроен для автоматического создания при вставке строки и не может быть непосредственно записан.
чтобы сохранить привязку из производственной среды к тесту, используйте:
SET Identity_Insert <TableName> ON
для записи значений идентификаторов.
все, что мне нужно было:
- щелкните правой кнопкой мыши по столбцу (в данном случае 'ID')
- Выберите Изменить
- внутри свойств столбца прокрутите вниз, пока не увидите спецификацию идентификатора
- Раскройте и выберите Нет в раскрывающемся меню.
Если кто-то знает другой (более быстрый) способ сделать это, пожалуйста, поделитесь
звучит так, как будто вы пытаетесь вставить значения в столбец, который был объявлен как поле идентификатора.
Ну, ответ немного опоздал, но я все равно публикую его ради предоставления сообществу.
Я предполагаю, что вы пытаетесь скопировать таблицы (а не частичные данные). Мой ответ основан на этом предположении.
- подключение к исходной БД через Обозреватель объектов в SSMS.
- щелкните правой кнопкой мыши db что вы хотите, чтобы его таблицы были скопированы.
- на 'Задачи'-->''.
- выбрать источник и целевой сервер, и если вы не хотите, чтобы дополнительный скрипт запускался перед руками, просто нажмите next ("копировать данные из одной или нескольких таблиц или представлений"). Теперь вы можете выбрать таблицы, которые хотите скопировать в пункт назначения.
выберите таблицы, которые вы хотите полностью скопировать в пункт назначения. И нажмите "Редактировать сопоставления". Здесь вы можете "включить identity insert". У вас также будут другие опции, поэтому проверьте экран перед нажатием OK.
Если вы не пользуетесь экспресс-выпуск SSMS здесь вы можете создать пакет служб SSIS для создания заданий и автоматизации этого процесса в будущем. Вы можете проверить "запустить немедленно" и следовать экрану о том, как это происходит со всеми предупреждениями и ошибками. Надеюсь, вы ничего не получите. Удачи!
Tested with:
(
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86)
Jun 17 2011 00:57:23
Copyright (c) Microsoft Corporation
Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2)
)