Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Платформа аналитики (PDW)
Длина поля указывает максимальное количество символов, необходимых для представления данных в символьном формате. Длина поля известна заранее, если данные хранятся в собственном формате, например значение типа int занимает 4 байта. Если в качестве длины префикса указано значение 0, то командная строка bcp выводит запрос на указание длины поля и длины поля по умолчанию, а также на то, как должно отразиться значение длины поля на хранении данных в файлах данных, которые содержат данные char .
Запрос bcp на длину поля
Если интерактивная команда bcp содержит параметры in или out без переключателя файла формата (-f) или переключателей формата данных (-n, -c, -w или -N), команда запрашивает длину каждого поля данных, как показано ниже.
Enter length of field <field_name> [<default>]:
Пример, показывающий этот запрос в контексте, см. в разделе "Указание форматов данных для совместимости" при использовании bcp (SQL Server).
Примечание.
После интерактивного заполнения всех полей в команде bcp появится запрос на сохранение введенных ответов для каждого поля в файле форматирования в формате, отличном от XML. Дополнительные сведения о файлах форматирования, отличных от XML, см. в разделе "Файлы форматирования не XML" (SQL Server).
Будут ли командные строки bcp выводить запросы для указания значений длины полей, зависит от нескольких факторов, как указано ниже.
При копировании типов данных, которые не являются фиксированной длиной, и вы указываете длину префикса 0, bcp запрашивает длину поля.
Если происходит преобразование несимвольных данных в символьные данные, то bcp предлагает по умолчанию длину поля, достаточно большую для сохранения данных.
Если тип хранилища файлов является нехарактерным, команда bcp не запрашивает длину поля. Данные хранятся в собственном представлении данных Microsoft SQL Server (собственный формат).
Использование длины полей по умолчанию
Как правило, корпорация Майкрософт рекомендует принимать значения длины поля, предлагаемые по умолчанию bcp. При создании файла данных в режиме символов длина поля по умолчанию гарантирует, что данные не усечены и не возникают числовые ошибки переполнения.
При указании некорректного значения длины поля могут возникнуть проблемы. Например, если вы копируете числовые данные и указываете слишком короткую длину поля для данных, программа bcp выводит сообщение переполнения и не копирует данные. Если при экспорте данных типа datetime для символьной строки была задана длина поля меньше, чем 26 байт, программа bcp производит усечение данных без предупреждения.
Внимание
Если используется параметр размера по умолчанию, SQL Server ожидает считывания всей строки. В некоторых случаях использование значения длины поля по умолчанию приводит к возникновению ошибки «неожиданный конец файла». Обычно эта ошибка возникает при работе с данными типов money и datetime, когда в файле данных содержится только часть ожидаемого поля; например, когда значение типа datetime в формате мм/дд/гг задано без времени и, следовательно, короче ожидаемой длины в 24 символа для значения datetime в формате char. Чтобы избежать этого типа ошибки, используйте разделители полей или поля данных фиксированной длины, либо измените длину полей по умолчанию, указав другое значение.
Длина полей по умолчанию для хранилища файлов символов
В представленной ниже таблице приведены значения длины поля для данных, хранимых в символьной форме. Данные, допускающие значение NULL, имеют такую же длину, как данные без значения NULL.
| Тип данных | Длина по умолчанию (в символах) |
|---|---|
| char | Длина, определенная для столбца |
| varchar | Длина, определенная для столбца |
| nchar | Удвоенная длина, определенная для столбца |
| nvarchar | Удвоенная длина, определенная для столбца |
| Текст | 0 |
| ntext | 0 |
| bit | 1 |
| binary | Удвоенная длина, определенная для столбца, плюс 1 |
| varbinary | Удвоенная длина, определенная для столбца, плюс 1 |
| Изображение | 0 |
| datetime | 24 |
| smalldatetime | 24 |
| float | 30 |
| реальный | 30 |
| int | 12 |
| bigint | 19 |
| smallint | 7 |
| tinyint | 5 |
| money | 30 |
| smallmoney | 30 |
| десятичное число | 41 1 |
| numeric | 41 1 |
| uniqueidentifier | 37 |
| timestamp | 17 |
| varchar(max) | 0 |
| varbinary(max) | 0 |
| nvarchar(max) | 0 |
| UDT | Длина столбца типа, определенного пользователем (UDT) |
| XML | 0 |
| vector | Н/Д 2 |
1 Дополнительные сведения о десятичных и числовых типах данных см. в разделе "Десятичные и числовые" (Transact-SQL).
2 Преобразование типа векторных данных в строку символов и обратно запрещено.
Примечание.
Столбец данных типа tinyint может содержать целые значения от 0 до 255; максимальное количество символов, необходимых для представления чисел данного диапазона, равно 3 (для записи чисел от 100 до 255).
Длина полей по умолчанию для собственного хранилища файлов
В следующей таблице указаны значения стандартной длины поля для данных, хранимых в нативном формате файла. Данные, допускающие значение NULL, имеют такую же длину, как и остальные, а символьные данные всегда хранятся в символьном формате.
| Тип данных | Длина по умолчанию (в символах) |
|---|---|
| bit | 1 |
| binary | Длина, определенная для столбца |
| varbinary | Длина, определенная для столбца |
| Изображение | 0 |
| datetime | 8 |
| smalldatetime | 4 |
| float | 8 |
| реальный | 4 |
| int | 4 |
| bigint | 8 |
| smallint | 2 |
| tinyint | 1 |
| money | 8 |
| smallmoney | 4 |
| десятичное число | 1 |
| numeric | 1 |
| uniqueidentifier | 16 |
| timestamp | 8 |
| vector | 8-байтовый векторный заголовок + размер массива с плавающей запятой |
1 Дополнительные сведения о десятичных и числовых типах данных см. в разделе десятичных и числовых (Transact-SQL).
Во всех предыдущих случаях для последующей перезагрузки в SQL Server создайте файл данных для последующей перезагрузки, который сохраняет место в хранилище как минимум, используйте префикс длины с типом хранилища файлов по умолчанию и длиной поля по умолчанию.
Связанный контент
- утилита bcp
- типы данных (Transact-SQL)
- Установите терминаторы полей и строк (SQL Server)
- Укажите длину префикса в файлах данных с помощью bcp (SQL Server)
- Указание типа хранилища файлов с помощью bcp (SQL Server)
- Сохранение значений NULL или значений по умолчанию во время массового импорта (SQL Server)