Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Платформа аналитики (PDW)
Для наиболее компактного хранения файлов при массовом экспорте данных собственного формата в файл данных команда bcp ставит перед каждым полем один или несколько знаков, которые указывают длину этого поля. Эти символы называются символами префикса длины.
Запрос bcp для длины префикса
Если интерактивная команда bcp содержит параметр in или out без параметра файла форматирования (-f) или параметра формата данных (-n, -c, -wили -N), то команда запрашивает длину префикса каждого поля данных следующим образом:
Enter prefix length of field <field_name> [<default>]:
Если указать значение 0, программа bcp попросит указать либо длину поля (для символьного типа данных), либо признак конца поля (для собственного несимвольного типа).
Примечание.
После интерактивного заполнения всех полей в команде bcp появится запрос на сохранение введенных ответов для каждого поля в файле форматирования в формате, отличном от XML. Дополнительные сведения о файлах форматирования, отличных от XML, см. в разделе "Файлы форматирования, отличные от XML" (SQL Server).
Общие сведения о длине префикса
Для сохранения длины префикса поля требуется число байтов, достаточное для представления максимальной длины этого поля. Необходимое число байтов зависит также от типа хранения файла, возможности столбца содержать значения NULL и от способа хранения данных в этом файле — в собственном или символьном формате. Например, типы данных text или image требуют четырех символов для хранения длины поля, а тип данных varchar требует двух символов. В файле данных эти символы длины с префиксом хранятся во внутреннем бинарном формате данных SQL Server.
Внимание
При использовании собственного формата используйте префиксы длины, а не знаки конца поля. Данные в собственном формате могут конфликтовать с терминаторами, так как файл данных в собственном формате хранится во внутреннем формате двоичных данных SQL Server.
Длина префикса для массового экспорта
Примечание.
Значение по умолчанию, предлагаемое при запросе длины префикса при экспорте поля, означает оптимальную длину префикса для этого поля.
Значения NULL отображаются в виде пустого поля. Чтобы указать, что поле пусто (представляет NULL), префикс поля содержит значение -1; то есть требует не менее 1 байта. Если столбец таблицы SQL Server допускает значения NULL, для столбца требуется длина префикса 1 или больше в зависимости от типа хранилища файлов.
При массовом экспорте данных и сохранении их в виде собственных типов данных или символьном формате используйте следующие значения длины префиксов.
| SQL Server тип данных |
Собственный форматNOT NULL |
Собственный форматNULL |
Символьный форматNOT NULL |
Символьный форматNULL |
|---|---|---|---|---|
| char | 2 | 2 | 2 | 2 |
| varchar | 2 | 2 | 2 | 2 |
| nchar | 2 | 2 | 2 | 2 |
| nvarchar | 2 | 2 | 2 | 2 |
| СМС* | 4 | 4 | 4 | 4 |
| Ntext* | 4 | 4 | 4 | 4 |
| binary | 2 | 2 | 2 | 2 |
| varbinary | 2 | 2 | 2 | 2 |
| Изображение* | 4 | 4 | 4 | 4 |
| datetime | 0 | 1 | 0 | 1 |
| smalldatetime | 0 | 1 | 0 | 1 |
| десятичное число | 1 | 1 | 1 | 1 |
| numeric | 1 | 1 | 1 | 1 |
| float | 0 | 1 | 0 | 1 |
| реальный | 0 | 1 | 0 | 1 |
| int | 0 | 1 | 0 | 1 |
| bigint | 0 | 1 | 0 | 1 |
| smallint | 0 | 1 | 0 | 1 |
| tinyint | 0 | 1 | 0 | 1 |
| money | 0 | 1 | 0 | 1 |
| smallmoney | 0 | 1 | 0 | 1 |
| bit | 0 | 1 | 0 | 1 |
| uniqueidentifier | 1 | 1 | 0 | 1 |
| timestamp | 1 | 1 | 1 | 1 |
| varchar(max) | 8 | 8 | 8 | 8 |
| varbinary(max) | 8 | 8 | 8 | 8 |
| UDT (определяемый пользователем тип данных) | 8 | 8 | 8 | 8 |
| XML | 8 | 8 | 8 | 8 |
| sql_variant | 8 | 8 | 8 | 8 |
| vector | 2 | 2 | N/A | N/A |
- Типы данных ntext, text и image будут удалены в будущей версии SQL Server. Следует избегать использования этих типов данных при новой разработке и запланировать изменение приложений, использующих их в настоящий момент. Вместо них следует использовать типы данных nvarchar(max), varchar(max)и varbinary(max) .
Длина префикса для массового импорта
При массовом импорте данных длина префикса — это значение, указанное при первоначальном создании файла данных. Если файл данных не был создан командой bcp , то символы префикса длины, вероятно, не существуют. В этом случае в качестве длины префикса нужно указать 0.
Примечание.
Для определения длины префикса в файле данных, созданном без помощи программы bcp, используйте значения длины, указанные выше в разделе Длины префиксов для массового экспорта.