Импорт в MS SQL SERVER 2000
Нужно импортировать данные из .xls файла. Если импортирую таблицу не содержащую внешних ключей(foreign key) то всё нормально. При импортировании данных содержащие внешнии ключи вылетает ошибка:
INSERT statement conflicted with COLUMN FOREIGN KEY constraint 'Имя_ключа'. Подскажите пожалуйста кто знает в чом проблема.
1) Все ли данные в экселе что импортируются в поле явл.-ся внешним ключом имеют соответсвующие значения в таблицах с первичным ключом.
2) Часто в первой строке файла эксель пишется название поля, проверь не получается ли при импорте так, что первая строка интерпретируется как первая запись в таблице и соответсвенно скорее всего не имеет соотв-го первичного ключа.
3) проверь нет ли в колонке пустых значений, которые могут имопртироваться как пустые строки...
мне кажется проблема где-то здесь...
2) В экселе названия полей прописаны. Возможно это и вызывает оштбку. Я проверю это, если ты подскажешь как(если тебя не обламает).
Да и ещё забыл указать, что в сообщение об ошибке говорится. "Конфликт произошол в бд "Имя", таблица "таблица", колонка "ID"
3)В колонке с внешними ключами пустыз значений нет.
Заране спасибо
Я импортировал при помощи Enterprize Manager, следующим образом:
1) выбираешь базу, таблицы, меню Все задачи, там Import Data.
2) В появившемся окне выбираешь дата провайдера (у меня это был ms excel 97-2000), выбираешь файл, жмешь дальее
3) выбираешь сервер и базу, жмешь далее.
4) Если не нужно никак предварительно данные из экселя обрабатывать, столбцы в экселе соответсвуют столбцам из бд выбираешь, просто "Copy tables and views и т.д....."
5) Если в книге эксель не один рабочий лист - выбираешь с каких рабочих листов брать данные и в какую таблицу их записывать..
6) ну и там, нажимаешь выполнить
Первую строчку при этом он интерпретирует как названия столбцов, но они не обязательно должны совпадать с названиями столбцов в таблице, главное чтоб совпадал тип данных в других строках.
100% все работает ибо сам не раз пользовался этим и в разных таблицах и с внешними ключами и нет...В случае ошибок, мне кажется имеет смысл еще раз проверить экселевский файл...
В крайнем случае уж если ваще никак не получается, можно перегнать во временную таблицу без форенкеев, а потом уже запросом перекинуть в основную...Но если данные правильные, все получится и так.
Спасибо за внимание. От этой ошибки испбавился. На самом деле ошибка была под номером 1- из твоего списка. )) Просто не усмотрел: Всё таки 5223 записи. Пришлось прогу писать для поиска внешних ключей. Ещё раз спасибо.