Що таке файл BCP?
BCP (Bulk Copy Format) — це формат технічних даних Microsoft SQL Server, який визначає структури даних для зберігання різних значень типів даних бази даних для імпорту/експорту. Формат повністю визначає інтерпретацію кожного стовпця даних, щоб можна було прочитати набір значень, указаних у файлі даних. Утиліта BCP використовує формат файлу BCP для читання дані з такого файлу та ідентифікуйте його.
Формат файлу BCP
Файл у форматі BCP – це XML-документ, який визначає порядок стовпців, назву та тип даних. Це дозволяє користувачам імпортувати/експортувати великі обсяги даних із файлу даних із зазначенням цих полів. Це корисно під час масового імпорту значень даних із файлів даних. Кількість і порядок полів даних у файлі даних можуть відрізнятися від полів у цільових стовпцях таблиці. Саме тоді на допомогу приходить файл формату даних BCP, який визначає порядок і тип стовпців для імпорту даних.
Структура файлу формату представлена в наступному форматі.
<BCPFORMAT ...>
    <RECORD>
       <FIELD ID = "fieldID" xsi:type = "fieldType" [...] />
    </RECORD>
    <ROW>
       <COLUMN SOURCE = "fieldID" NAME = "columnName" xsi:type = "columnType" [...]  />
    </ROW>
 </BCPFORMAT>
Типи даних BCP
| Тип даних | Діапазон | Подання | 
|---|---|---|
| BigInt | -263 (-9,223,372,036,854,775,808) до 263-1 (9,223,372,036,854,775,807) | BigInt = ["-"]1*19DIGIT | 
| Двійковий | від 1 до 8000 байт | формат рядка Юнікод із шістнадцятковим кодуванням Двійковий = 32000OCTET | 
| Біт | 0 або 1 | простий рядок Unicode Біт = “0” / “1” | 
| Char | від 1 до 8000 | Формат рядка Unicode, Char = 16000OCTET | 
| CLRUDT | VarBinary | CLRUDT = 0*nOCTET з n = 4 x (2 147 483 647) | 
| Дата | 0001-01-01 до 9999-12-31 | Формат рядка РРРР-ММ-ДД | 
| ДатаЧас | 1753-01-01 00:00:00.000 до 9999-12-31 23:59:59.997 | Юнікод РРРР-ММ-ДД гг:хх:сс[.nnn] формат рядка | 
| ДатаЧас2 | 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999. | Юнікод РРРР-ММ-ДД гг:хх:сс[.nnnnnn] формат рядка | 
| DateTimeOffset | 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999 у часовому поясі Всесвітнього координованого часу (UTC) | Юнікод РРРР-ММ-ДД гг:хм:сс[.nnnnnn] [{+ | 
| Decimal | -1038 + 1 до 1038 – 1 | Формат рядка Unicode Decimal = ["-"] 0*38DIGIT ["."0*38DIGIT] | 
| Float | -1,79E+308 до -2,23E-308; 0; від 2.23E-308 до 1.79E+308 | Рядковий формат Unicode | 
| Зображення | послідовність байтів у діапазоні від 0 до 231 – 1 (2 147 483 647) | формат рядка Юнікоду в шістнадцятковому кодуванні | 
| Int | -231 (-2,147,483,648) до 231 – 1 (2,147,483,647) | Формат рядка Unicode |