Especificar el tipo de almacenamiento en archivo mediante bcp (SQL Server)

El tipo de almacenamiento de archivo describe cómo se almacenan los datos en el archivo de datos. Los datos se pueden exportar a un archivo de datos como su tipo de tabla de base de datos correspondiente (formato nativo), como su representación en caracteres (formato de caracteres) o como cualquier tipo de datos que admita la conversión implícita; por ejemplo, si copia datos smallint como datos int. Los tipos de datos definidos por el usuario se exportan como sus tipos base correspondientes.

Comando bcp para el tipo de almacenamiento en archivo

Si un comando bcp interactivo contiene la opción in o out pero no contiene el modificador de archivo de formato (-f) o un modificador de formato de datos (-n, -c, -w o -N), el comando solicita el tipo de almacenamiento del archivo de cada campo de datos de la manera siguiente:

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

Su respuesta a este mensaje depende de la tarea que realice:

  • Para exportar datos de forma masiva desde una instancia de Microsoft SQL Server a un archivo de datos con el almacenamiento más compacto posible (formato de datos nativo), acepte los tipos de almacenamiento en archivo predeterminados que proporciona bcp. Para obtener una lista de los tipos de almacenamiento en archivo nativos, vea "Tipos de almacenamiento en archivo nativos", más adelante en este mismo tema.

  • Para exportar datos de forma masiva desde una instancia de SQL Server a un archivo de datos en formato de caracteres, especifique char como el tipo de almacenamiento en archivo para todas las columnas de la tabla.

  • Para importar datos de forma masiva a una instancia de SQL Server desde un archivo de datos, especifique el tipo de almacenamiento en archivo como char para los tipos almacenados en formato de caracteres y, para los datos almacenados en formato de tipo de datos nativo, especifique uno de los siguientes tipos de almacenamiento en archivo, según corresponda:

    Tipo de almacenamiento en archivo

    Escriba en el símbolo del sistema

    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(un tipo de datos definido por el usuario)

    U

    XML

    X

    1 La interacción de longitud de campo, longitud de prefijo y terminadores determina la cantidad de espacio de almacenamiento que se asigna en un archivo de datos a datos que no son de caracteres que se exporta como el tipo de almacenamiento en archivo char.

    2 Los tipos de datos ntext, text e image se quitarán en una versión futura de SQL Server. En proyectos de desarrollo nuevos evite el uso de estos tipos de datos y planee la modificación de las aplicaciones que los utilicen actualmente. En su lugar, use nvarchar(max), varchar(max) y varbinary(max).

Tipos de almacenamiento en archivo nativos

Cada tipo de almacenamiento en archivo nativo se registra en el archivo de formato como el tipo de datos de archivo host correspondiente.

Tipo de almacenamiento en archivo

Tipo de datos del archivo host

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 (un tipo de datos definido por el usuario)

SQLUDT

1 Los archivos de datos que se almacenan en formato de caracteres utilizan char como tipo de almacenamiento en archivo. Por consiguiente, para archivos de datos de caracteres, SQLCHAR es el único tipo de datos que aparece en un archivo de formato.

2 No puede importar datos de forma masiva en columnas text, ntext e image que tengan valores DEFAULT.

Consideraciones adicionales para los tipos de almacenamiento en archivo

Cuando exporta datos de forma masiva desde una instancia de SQL Server a un archivo de datos:

  • Siempre puede especificar char como tipo de almacenamiento en archivo.

  • Si indica un tipo de almacenamiento en archivo que representa una conversión implícita no válida, se produce un error en bcp; por ejemplo, aunque puede especificar int para datos smallint, si especifica smallint para datos int, se producirán errores de desbordamiento.

  • Si se almacenan tipos de datos que no son de caracteres (por ejemplo, float, money, datetime o int como los tipos de bases de datos correspondientes, los datos se escribirán con el formato nativo de SQL Server en el archivo de datos.

    [!NOTA]

    Una vez que se especifican de forma interactiva todos los campos de un comando bcp, el comando solicita sus respuestas para cada campo en un archivo con formato no de XML. Para obtener más información acerca de los archivos con formato distinto de XML, vea Archivos de formato no XML [SQL Server].

Vea también

Referencia

bcp (utilidad)

Tipos de datos (Transact-SQL)

Conceptos

Especificar la longitud de campo mediante bcp (SQL Server)

Especificar terminadores de campo y de fila (SQL Server)

Especificar la longitud de prefijo en los archivos de datos mediante bcp (SQL Server)