Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
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.
El indicador de bcp para el tipo de almacenamiento de archivos
Si un comando interactivo bcp contiene la opción in o out sin el conmutador de archivo de formato (-f) o un conmutador de formato de datos (-n, -c, -w o -N), el comando solicita el tipo de almacenamiento de archivos de cada campo de datos de la siguiente manera:
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), acepta 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, especifica 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, especifica 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, especifica uno de los siguientes tipos de almacenamiento en archivo, según corresponda:
tipo de almacenamiento en archivo Escriba en el indicador de comandos char c[har]varchar c[har]nchar wnvarchar wtext T[ext]ntext2 Wbinary xvarbinary ximage I[mage]datetime d[ate]smalldatetime Dtime tedate dedatetime2 d2datetimeoffset dodecimal nnumeric nfloat f[loat]real rInt i[nt]bigint B[igint]smallint s[mallint]tinyint t[inyint]money m[oney]smallmoney Mbit b[it]uniqueidentifier usql_variant V[ariant]timestamp xUDT (un tipo de datos definido por el usuario) UXML Xvector v[ector]*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 de archivos 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 |
| vector | SQLVECTOR |
Los archivos de datos almacenados 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 se pueden importar datos de forma masiva en columnas de texto, ntext e imagen que tengan
DEFAULTvalores.
Consideraciones adicionales para los tipos de almacenamiento de archivos
Cuando exportas datos de forma masiva desde una instancia de SQL Server a un archivo de datos:
Siempre puede especificar char como el tipo de almacenamiento de archivos, excepto las columnas de tipo vector que no admiten la conversión a y desde char.
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:
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).