Как импортировать в SQL Server 2005 из плоского файла с преобразованиями данных
-
19-09-2019 - |
Вопрос
У меня есть плоский файл данных, который мне нужно импортировать в мою базу данных SQL Server 2005.
Многие поля необходимо разделить на разные связанные таблицы.Например, плоский файл содержит имена, адреса и номера телефонов, все в одной записи.В моей базе данных Person
в таблице есть много Telephones
и Addresses
.
Существует ли одноэтапный процесс, посредством которого я могу импортировать все в свои таблицы, или мне нужно сначала импортировать это в новую таблицу в моей базе данных (тьфу - загрязнение, если я забуду ее удалить) и импортировать данные оттуда, используя инструкции SQL и временные таблицы?
Решение
Я предпочитаю одну таблицу импорта с последующим разделением на конечные таблицы.Я бы также сохранил таблицу импорта, а не создавал / удалял ее каждый раз.
- Проще справляться с ограничениями (проверьте перед вставкой в итоговую таблицу или обновлением существующей строки)
- Проще оставить данные, генерирующие ошибки, в таблице импорта после удаления успешных строк
- Транзакция на стороне сервера
- Безопасность типов данных:можете ли вы на 100% доверять своему источнику?
- Проще использовать ISNULL или NULLIF в SQL для работы с пустыми строками и другими подобными
- и другие вещи, которые я сейчас не могу вспомнить...
Другие советы
Это полностью работа для Службы интеграции SQL Server.Он обладает некоторыми замечательными функциональными возможностями, которые позволят вам взять плоский файл, выполнять с ним манипуляции с данными и в конечном итоге импортировать его в вашу новую базу данных.
К сожалению, за пределами этого нет простого решения "быстрого исправления", о котором я знаю.Однако есть технология, которую я бы изучил в первую очередь.