<< На Главную     <В  Советы по MS SQL Server

Как импортировать данные из текстового файла

Представим себе такую , достаточно часто встречающуюся ситуацию - вам необходимо загрузить в таблицу MS SQL в пакетном режиме данные, представленные в обычном текстовом файле типа txt или csv (для тех, кто не в теме - csv отличается от txt тем, что в нем может быть представлено в первой строке описание полей и значения отделены друг от друга символом, отличным от пробела).

Далее, для конкретики, для случая нашего сквозного примера предположим, что имеется файл CSV следующего содержания c данными о сотрудниках некой коммерческой фирмы (его нетрудно получить/подготовить, скажем, путем пересохранения из таблицы в формате Excel, приведена на рисунке ниже справа. Кстати сказать, подобный подход может оказаться наиболее простым  и продуктивным для подготовки больших массивов данных для загрузки в MS SQL):

Текстовый файл для загрузки в MS SQL Таблица с данными для загрузки в Excel

 

На какие важные моменты здесь стоит обратить внимание в контексте задачи загрузки данных в MS SQL :

Выбрать кодировку файла в редакторе AkelPad

Так,  с форматированием файла в контексте задачи его загрузки в MS SQL разобрались. Теперь переходим в Management Studio и в окне справа (окно запросов) набираем такой запрос BULK INSERT (для  нашего учебного случая):

Use OOO_RogaKopyta

BULK INSERT Sotrudniki FROM 'D:\ДляЗагрузки\Сотрудники.csv'

WITH (

FIELDTERMINATOR = ';',

datafiletype = 'widechar',

FIRSTROW = 2

)

Текст запроса BULK INSERT Комментарии к запросу:

Use OOO_RogaKopyta - заливать (импортировать) информацию будем в базу данных OOO_RogaKopyta

Sotrudniki - таблица, в которую будем  импортировать содержимое файла

Данные читаем из файла 'D:\ДляЗагрузки\Сотрудники.csv'

параметр FIELDTERMINATOR = ';' - разделитель полей данных - знак точка с запятой (строго говоря может быть другой символ)

параметр FIRSTROW = 2 - читаем данные начиная со второй строки ( в первой в нашем тестовом файле находятся имена полей)

 

Готово ! После отработки запроса по F5 идем в таблицу-приемник  Sotrudniki и видим следующий  результат :

Таблица MS SQL с загруженными из текстового файла данными

При загрузке данных имейте в виду сл. момент - если в вашей табличке имеются ограничения внешнего ключа или уникальности, то записи, которые будут противоречить этим требования в табличку, естественно, не зальются.

Кстати, сделать крупнее шрифт в табличке результатов запроса в Management Studio можно по меню Сервис>Параметры в пункте Шрифты и цвета>Сетка результатов:

Всем  успешных загрузок в MS SQL  !

Еще, возможно, несколько полезных советов для пользователей по работе с MS SQL Server  можно посмотреть здесь

© Simashkov.2019

28.04.2019 г.

Назад