Вставьте фиксированные значения, используя BCP - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь импортировать файл TXT, используя bcp.

Мой файл TXT выглядит следующим образом:

abc|cba
xyz|zyx

Моя таблица выглядит так:

Field_1 -> Identity field
Field_2 -> Varchar(3)
Field_3 -> Varchar(3)
Filed_4 -> Varchar(1) In this case I must set with default value 'P'
Filed_5 -> Varchar(1) In this case I must set with default value 'C'

Моя таблица со значениями должна быть:

1,abc,cba,P,C
2,xyz,zyx,P,C

Примечание-> Мой TXT-файл огромен (около 200 ГБ), я невозможно импортировать в другую таблицу, чтобы затем передать все значения в эту таблицу (просто говоря).

@@ Version-> SQL Server 2014 (SP2)

1 Ответ

0 голосов
/ 23 марта 2020

Вы не можете генерировать данные через BCP, вы должны зависеть от SQL Сервера, чтобы сделать это, как прокомментировал Jeroen. Чтобы добавить к его комментарию значение удостоверения не по умолчанию, вы должны продолжать использовать свойство удостоверения столбца.

Для обоих (удостоверения и по умолчанию) необходимо использовать параметр -f для BCP. Эта опция включает файл формата, который позволяет утилите BCP просматривать и обрабатывать данные, как указано в файле формата.

Используя файл форматирования, вы можете указать, какие столбцы в файле сопоставляются с какими столбцами. находятся в таблице назначения. Чтобы исключить столбец, просто установите его целевое значение «0».

Файлы форматирования и утилита bcp сами по себе являются гораздо более крупными темами, но для ответа на ваш вопрос; да, это возможно, и использование файла формата с измененными значениями назначения (установленными в «0») является способом сделать это.

Делая это, вы можете обработать данные один раз. Использование powershell для добавления данных возможно, но не нужно и менее эффективно. Чтобы сделать это за одно действие с bcp, вам нужно использовать файл формата.

...