Указание типа файлового хранилища с помощью программы bcp

Тип файла хранилища описывает, каким образом данные хранятся в файле данных. Данные могут экспортироваться в файл данных в формате таблиц баз данных (собственный формат), в символьном представлении (символьный формат) или в любом формате данных, поддерживающем неявное преобразование, как, например при копировании данных типа smallint как тип int. Пользовательские типы данных экспортируются так же, как их базовые типы.

ПримечаниеПримечание

Дополнительные сведения о преобразовании данных см. в разделе Преобразование типов данных (компонент Database Engine).

Приглашение bcp указать тип файлового хранилища

Если в интерактивной команде bcp указан параметр in или out без указания ключа файла форматирования (-f) или ключа формата данных (-n, -c, -w или -N), командная строка запрашивает тип файлового хранилища для каждого поля данных:

Enter the file storage type of field <field_name> [<default>]:

Ответ на такое приглашение зависит от выполняемой задачи.

  • Для массового экспорта данных из экземпляра Microsoft SQL Server в файл данных в наиболее компактном хранилище (собственный формат данных) принимайте типы файловых хранилищ по умолчанию, предоставляемые bcp. Список собственных типов файловых хранилищ см. в разделе «Собственные типы файловых хранилищ» далее в этом подразделе.

  • Для массового экспорта данных из экземпляра SQL Server в файл данных в символьном формате укажите в качестве типа файлового хранилища char для всех столбцов таблицы.

  • Для массового импорта данных в экземпляр SQL Server из файла данных, укажите тип файлового хранилища char для типов, для которых данные хранятся в символьном формате, а для данных, хранящихся в формате собственного типа данных, укажите один из типов файлового хранилища.

    Тип файлового хранилища

    Введите в командной строке

    char1

    c[har]

    varchar

    c[har]

    nchar

    w

    nvarchar

    w

    text2

    T[ext]

    ntext2

    W

    binary

    x

    varbinary

    x

    image2

    I[mage]

    datetime

    d[ate]

    smalldatetime

    D

    time

    te

    date

    de

    datetime2

    d2

    datetimeoffset

    do

    decimal

    n

    numeric

    n

    float

    f[loat]

    real

    r

    Int

    i[nt]

    bigint

    B[igint]

    smallint

    s[mallint]

    tinyint

    t[inyint]

    money

    m[oney]

    smallmoney

    M

    bit

    b[it]

    uniqueidentifier

    u

    sql_variant

    V[ariant]

    timestamp

    x

    UDT (user-defined data type, пользовательский тип данных)

    U

    XML

    X

    1. Взаимосвязь длины поля, длины префикса и признаков конца определяет объем хранилища, выделенный в файле данных для несимвольных данных, экспортируемых в качестве типа файлового хранилища char. Дополнительные сведения см. в разделе Хранение данных в символьном формате.

    2. Типы данных ntext, text и image будут удалены в следующей версии SQL Server. Следует избегать использования этих типов данных при новой разработке и запланировать изменение приложений, использующих их в настоящий момент. Вместо них используйте nvarchar(max), varchar(max) и varbinary(max). Дополнительные сведения см. в разделе Использование типов данных больших значений.

Собственные типы файловых хранилищ

Все собственные типы файловых хранилищ записаны в файле форматирования как соответствующие типы данных основных файлов.

Тип файлового хранилища

Тип данных основного файла

char1

SQLCHAR

varchar

SQLCHAR

nchar

SQLNCHAR

nvarchar

SQLNCHAR

text2

SQLCHAR

ntext2

SQLNCHAR

binary

SQLBINARY

varbinary

SQLBINARY

image2

SQLBINARY

datetime

SQLDATETIME

smalldatetime

SQLDATETIM4

decimal

SQLDECIMAL

numeric

SQLNUMERIC

float

SQLFLT8

real

SQLFLT4

int

SQLINT

bigint

SQLBIGINT

smallint

SQLSMALLINT

tinyint

SQLTINYINT

money

SQLMONEY

smallmoney

SQLMONEY4

bit

SQLBIT

uniqueidentifier

SQLUNIQUEID

sql_variant

SQLVARIANT

timestamp

SQLBINARY

UDT (определяемый пользователем тип данных)

SQLUDT

1. Для файлов данных, хранящихся в символьном формате, в качестве типа файлового хранилища используется char. Таким образом, для символьных файлов данных SQLCHAR — это единственный тип данных, допустимый в файле форматирования.

2. Невозможно выполнить массовый импорт данных в столбцы text, ntext и image, если они содержат значения DEFAULT.

Дополнительные замечания относительно типов файловых хранилищ

При массовом экспорте данных из экземпляра SQL Server в файл данных:

  • можно указать в качестве типа файлового хранилища char;

  • если указан тип файлового хранилища, представляющий недопустимое неявное преобразование, то работа bcp завершится ошибкой. Например, хотя можно указать int для данных smallint, если задать smallint для данных int, итогом станет ошибка переполнения;

  • когда несимвольные типы данных, такие как float, money, datetime или int, хранятся с использованием соответствующих типов баз данных, то данные записываются в файл данных в собственном формате SQL Server.

    ПримечаниеПримечание

    После определения в интерактивном режиме всех полей в команде bcp выводится предложение сохранить настройки каждого поля в файле, имеющем формат, отличный от XML. Дополнительные сведения о файлах, не являющихся XML-файлами форматирования, см. в разделе Основные сведения о файлах форматирования в формате, отличном от XML.