Поделиться через


Ошибка "Индекс был за пределами массива" при импорте данных из нескольких таблиц в базе данных SQL Server в книгу Excel 2013

Симптомы

Рассмотрим следующий сценарий, в котором вы пытаетесь импортировать данные из базы данных Microsoft SQL Server 2012 в книгу Microsoft Excel 2013:

  • Запустите мастер подключения к данным, чтобы создать подключение из базы данных SQL Server к книге.
  • Вы выбираете несколько таблиц из базы данных.
  • Вы выбираете способ просмотра импортированных данных в книге. Например, можно создать таблицу, отчет сводной таблицы или отчет сводной диаграммы.

В этом случае появляется следующее сообщение об ошибке:

Не удалось получить данные из модели данных. Вот ошибка, которую мы получили: индекс находился за пределами массива.

Причина

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

Примечание. Эта проблема не возникает при использовании мастера подключения к данным для импорта данных из одной таблицы. В этом случае мастер подключения к данным использует полное имя таблицы.

Обходной путь

Чтобы обойти эту проблему, воспользуйтесь одним из описанных ниже методов.

  • Используйте мастер подключения к данным для импорта данных из одной таблицы за раз.
  • Убедитесь, что ни одно из имен таблиц не заканчивается строкой, которая соответствует имени схемы, а затем импортируйте данные из нескольких таблиц.
  • После получения сообщения об ошибке, упомянутого в разделе "Симптомы", выполните следующие действия, чтобы импортировать данные из нескольких таблиц:
    1. Щелкните Свойства в диалоговом окне Импорт данных.
    2. Выберите вкладку Определение.
    3. В поле Текст команды измените имена таблиц на полные имена таблиц в следующем формате: Database.Schema.TableName