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

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)