Импортировать данные таблицы Excel в СУЩЕСТВУЮЩУЮ таблицу sql?

У меня есть таблица с именем tblAccounts, содержимое которой будет получено из электронной таблицы Excel.

Я использую MS SQL Server 2008 (x64) на Windows 8.1 (x64)

Я пытался использовать мастер импорта/экспорта SQL Server, но нет возможности выбрать существующую таблицу, а есть только вариант создания новой.

Я пытался использовать другие методы, такие как OPENROWSETS

INSERT INTO tblAccount SELECT * FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0',
'Excel 12.0;Database=D:\exceloutp.xls','SELECT * FROM [Sheet1$]')

но дал мне ошибку:

Сообщение 7308, уровень 16, состояние 1, строка 1 Поставщик OLE DB "Microsoft.Jet.OLEDB.4.0" нельзя использовать для распределенных запросов, поскольку поставщик настроен для работы в однопоточном режиме квартиры.

Некоторые исследования показали, что это произошло из-за 64-битного экземпляра SQL-сервера.

Проблема заключается в том, что этот перенос данных Excel в таблицу SQL должен выполняться только с помощью мастера импорта/экспорта SQL.

Как я могу импортировать электронную таблицу Excel в существующую таблицу SQL, не создавая новую?

Некоторые ссылки, которые я посетил, но не смогли помочь мне решить мою проблему:

Ответы

Ответ 1

Saudate, я столкнулся с этим, ища другую проблему. Вы, безусловно, можете использовать мастер импорта Sql Server для импорта данных в новую таблицу. Конечно, вы не хотите оставлять эту таблицу в базе данных, поэтому я предлагаю вам импортировать в новую таблицу, а затем script данные в менеджере запросов для вставки в существующую таблицу. Вы можете добавить строку, чтобы удалить временную таблицу, созданную мастером импорта, в качестве последнего шага после успешного завершения script.

Я считаю, что исходная проблема на самом деле связана с Sql Server 64 bit и связана с тем, что у вас 32-битный Excel, и эти драйверы плохо сочетаются. Я столкнулся с очень похожими проблемами, когда сначала использовал 64-битное преимущество.

Ответ 2

Вы можете скопировать и вставить данные из таблицы Excel в таблицу SQL следующим образом:

  • Выберите данные в Excel и нажмите Ctrl + C
  • В SQL Server Management Studio щелкните правой кнопкой мыши таблицу и выберите "Редактировать первые 200 строк".
  • Прокрутите вниз и выберите всю пустую строку, нажав на заголовок строки
  • Вставьте данные, нажав Ctrl + V

Примечание. Часто таблицы имеют первый столбец, который представляет собой столбец идентификаторов с автоматически сгенерированным/увеличенным идентификатором. Когда вы вставите свои данные, он начнет вставлять самый левый выбранный столбец в Excel в самый левый столбец в SSMS, таким образом вставляя данные в ID-столбец. Чтобы избежать этого, оставьте пустой столбец в самой левой части вашего выбора, чтобы пропустить этот столбец в SSMS. Это приведет к тому, что SSMS вставит данные по умолчанию, которые являются автоматически сгенерированным идентификатором.

Кроме того, вы можете пропустить другие столбцы, располагая пустые столбцы в тех же порядковых позициях в списке листов Excel, что и пропущенные столбцы. Это заставит SSMS вставлять значение по умолчанию (или NULL, если значение по умолчанию не указано).

Ответ 3

Вы можете использовать данные импорта с помощью мастера, и там вы можете выбрать таблицу назначения.

Запустите мастер. При выборе исходных таблиц и представлений вы видите две части. Источник и назначение.

Щелкните поле в разделе "Место назначения", чтобы открыть раскрывающийся список и выбрать таблицу назначения и, если необходимо, отредактировать ее сопоставления.