Что является лучшей альтернативой Excel для загрузки данных в базу данных SQL Server?
У меня огромное количество проблем с загрузкой электронных таблиц в базу данных SQL Server.
В настоящее время я использую пакет SSIS для загрузки данных, и мне пришлось внести множество корректировок для загрузки данных:
- Все номера должны быть отформатированы как текст (в противном случае они не загружаются должным образом).
- Иногда номерам должна предшествовать одинарная кавычка ('), чтобы заставить их загружаться.
- Если в столбце есть сочетание ячеек и текстовых ячеек, текстовые ячейки должны быть первыми в файле (в противном случае загружаются только цифры и текст в виде NULL).
- Если пользователь меняет имя столбца, файл не загружается.
- Если пользователь изменяет имя вкладки, файл не загружается.
- Если пользователь добавляет новый столбец (даже в конце листа), файл не загружается.
- К счастью, лишние листы в файле не являются проблемой!
- Даты кажутся чувствительными, правильно ли они будут загружаться.
- Строки подключения к файлу Excel должны содержать «IMEX = 1» или все хуже.
- Запланированные задания SSIS должны выполняться как 32-разрядные даже в 64-разрядной системе.
Я загружал данные (обычно 200 000-500 000 строк на файл) в таблицу со всеми полями, определенными как nvarchar
. Затем при загрузке я переношу эти данные на следующем шаге пакета SSIS в рабочую таблицу с введенными полями данных.
- Скопируйте формат из одной строки в другую с помощью c #
- SSIS Excel импортирует электронную почту по ошибке
- создание файла excel и листа с меткой времени в ssis
- Внутреннее объединение на двух столбцах, что их значения не на 100% равны
- запланированный пакет SSIS, создающий файл excel с датой имени файла
Все требования, которые я должен наложить пользователю на то, как форматировать файл Excel, на самом деле являются болью. Обычно нам нужно отправить файл обратно несколько раз, пока все проблемы форматирования не будут корректными до загрузки файла. Я бы хотел уничтожить этот трэш.
Я знаю, что я не единственный, кто сталкивается с этим типом проблемы. Итак, я должен спросить …
Что является лучшей альтернативой Excel для загрузки данных в базу данных SQL Server?
Или я об этом неправильно? Должен ли я использовать что-то другое, кроме SSIS, для загрузки таблиц Excel?
- Создание файлов excel динамически на основе параметра
- Как импортировать высокоформатные данные из Excel в базу данных?
- Защита рабочей книги, вызывающая «Внешняя таблица не в ожидаемом формате» в SSIS
- Невозможно преобразовать mm / dd / yyyy в excel в формат даты csv yyyymmdd с использованием SSIS
- Ошибка проверки пакета: 0xC020801C excel connection
- Создание пакета SSIS в SSDT. Условное разделение в задаче потока данных вызывает разрыв пакета
- Импортировать несколько файлов Excel в SQL Server 2008 R2 с использованием пакетов SSIS?
- Не удалось подключиться к источнику с помощью диспетчера подключений, объединенных ячеек
Вы можете попробовать OpenRowSet:
SELECT * INTO SomeTable From OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=\\servername\c$\filename.xls;HDR=YES;IMEX=1', [Sheet2$])
На самом деле это не SQL-ответ, а простой:
Вы можете потребовать от пользователей копирования и вставки данных в таблицу Excel, где все, кроме полей данных, которые будут включены, заблокированы. Это предотвратит многие описанные пункты боли.