Importar datos con formato nativo y de caracteres de versiones anteriores de SQL Server
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
En SQL Server 2014 (12.x) y versiones posteriores, puedes usar bcp para importar datos de formato nativo y de caracteres de SQL Server 2000 (8.x), SQL Server 2005 (9.x), SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x) o SQL Server 2012 (11.x) mediante el modificador -V. El modificador -V hace que SQL Server use los tipos de datos de la versión anterior especificada de SQL Server, y el formato del archivo de datos es el mismo que el de esa versión anterior.
Para especificar una versión anterior de SQL Server para un archivo de datos, usa el modificador -V con uno de los siguientes calificadores:
Versión de SQL Server | Calificador: |
---|---|
SQL Server 2000 (8.x) | -V80 |
SQL Server 2005 (9.x) | -V90 |
SQL Server 2008 (10.0.x) | -V100 |
SQL Server 2012 (11.x) | -V 110 |
Interpretación de los tipos de datos
SQL Server 2005 (9.x) y versiones posteriores tienen compatibilidad para algunos nuevos tipos. Si deseas importar un tipo de datos nuevo en una versión anterior de SQL Server, debes almacenarlo en un formato que pueda ser leído por la versión anterior de los clientes bcp. En la tabla siguiente se resume cómo se convierten los tipos de datos nuevos a efectos de compatibilidad con las versiones anteriores de SQL Server.
Nuevos tipos de datos de SQL Server 2005 | Tipos de datos compatibles de la versión 6x | Tipos de datos compatibles de la versión 70 | Tipos de datos compatibles de la versión 80 |
---|---|---|---|
bigint | decimal | decimal | * |
sql_variant | text | nvarchar(4000) | * |
ntext | text | text | text |
nvarchar(max) | ntext | ntext | ntext |
varbinary(max) | image | image | image |
XML | ntext | ntext | ntext |
UDT** | image | image | image |
*Este tipo es compatible en modo nativo.
**UDT indica un tipo definido por el usuario.
Exportación mediante -V 80
Si realizas una exportación masiva de datos con el modificador -V80, los datos nvarchar(max), varchar(max), varbinary(max), XML y UDT en modo nativo se almacenan con un prefijo de 4 bytes, como los datos text, image y ntext, en lugar de usar un prefijo de 8 bytes, que es el valor predeterminado en SQL Server 2005 (9.x) y versiones posteriores.
Copiar valores de fecha
bcp utiliza la API de copia masiva de ODBC. Por tanto, para importar valores de fecha en SQL Server,bcp usa el formato de fecha ODBC (yyyy-mm-dd hh:mm:ss[.f...]).
El comando bcp exporta los archivos de datos con formato de caracteres utilizando el formato predeterminado ODBC para los valores datetime y smalldatetime . Por ejemplo, una columna datetime que contiene la fecha 12 Aug 1998
se copia de forma masiva en un archivo de datos como la cadena de caracteres 1998-08-12 00:00:00.000
.
Importante
Cuando importe datos en un campo smalldatetime utilizando bcp, asegúrese de que el valor de los segundos sea 00.000; de lo contrario, se producirá un error en la operación. El tipo de datos smalldatetime contiene únicamente valores hasta el minuto más cercano. BULK INSERT e INSERT ... SELECT * FROM OPENROWSET(BULK...) no darán error en esta instancia, pero truncarán el valor de los segundos.
Related Tasks
Para usar formatos de datos para la importación o exportación masivas
Uso del formato de caracteres para importar o exportar datos (SQL Server)
Uso del formato nativo para importar o exportar datos (SQL Server)
Uso del formato de caracteres Unicode para importar o exportar datos (SQL Server)
Usar el formato nativo Unicode para importar o exportar datos (SQL Server)
Consulte también
bcp (utilidad)
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Tipos de datos (Transact-SQL)
Compatibilidad con versiones anteriores del Motor de base de datos de SQL Server
CAST y CONVERT (Transact-SQL)