Especificación del tipo de almacenamiento de archivo mediante bcp (SQL Server)

Se aplica a: SQL Server (todas las versiones admitidas) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

El tipo de almacenamiento en archivo describe cómo se almacenan los datos en el archivo de datos. La información se puede exportar a un archivo de datos como el 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 un elemento smallint como 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 u out sin el modificador de archivo de formato ( -f) o un modificador de formato de datos ( -n, -c, -wo -N), el comando solicita el tipo de almacenamiento de archivos 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 de archivos 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 en bloque 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
    char c[har]
    varchar c[har]
    nchar w
    nvarchar w
    text T[ext]
    ntext2 W
    binary x
    varbinary x
    image 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

    *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 exportan como el tipo de almacenamiento de archivoschar.

    ** Los tipos de datos ntext, texte 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. Use nvarchar(max) , varchar(max) y varbinary(max) en su lugar.

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
char SQLCHAR
varchar SQLCHAR
nchar SQLNCHAR
nvarchar SQLNCHAR
text SQLCHAR
ntext SQLNCHAR
binary SQLBINARY
varbinary SQLBINARY
image 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

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

**No puede importar datos en bloque en columnas text, ntext, e image que tengan valores DEFAULT.

Consideraciones adicionales para los tipos de almacenamiento de archivos

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, datetimeo 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

    Después de que se especifiquen de forma interactiva todos los campos de un comando bcp, el comando solicita que guarde sus respuestas para cada campo en un archivo que no tenga el formato XML. Para obtener más información sobre los archivos con formato distinto de XML, vea Archivos de formato no XML (SQL Server).

Consulte también

bcp (utilidad)
Tipos de datos (Transact-SQL)
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)