Importare dati in formato nativo e carattere da versioni precedenti di SQL Server

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

In e versioni successive è possibile usare bcp per importare dati in formato nativo e carattere da , , , o tramite SQL Server 2014 (12.x) SQL Server 2000 (8.x) SQL Server 2005 (9.x) SQL Server 2008 SQL Server 2008 R2 l'opzione SQL Server 2012 (11.x) -V. Se si usa l'opzione -V , in SQL Server vengono usati tipi di dati della versione precedente specificata di SQL Servere il formato del file di dati corrisponderà al formato della versione precedente in questione.

Per specificare una versione di SQL Server precedente per un file di dati, usare l'opzione -V con uno dei qualificatori seguenti:

Versione di SQL Server Qualifier
SQL Server 2000 (8.x) -V80
SQL Server 2005 (9.x) -V90
SQL Server 2008 -V100
SQL Server 2012 (11.x) -V 110

Interpretazione dei tipi di dati

SQL Server 2005 (9.x) e versioni successive supportano alcuni nuovi tipi. Se si desidera importare un nuovo tipo di dati in una versione precedente di SQL Server , è necessario archiviarlo in un formato leggibile dai client bcp precedenti. Nella seguente tabella viene riepilogata la modalità di conversione dei nuovi tipi di dati per la compatibilità con le versioni precedenti di SQL Server.

Nuovi tipi di dati in SQL Server 2005 Tipi di dati compatibili nella versione 6 x Tipi di dati compatibili nella versione 70 Tipi di dati compatibili nella versione 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

*Questo tipo viene supportato a livello nativo.

**UDT indica un tipo definito dall'utente.

Esportazione usando –V 80

Quando si esportano globalmente i dati usando l'opzione -V80, i dati di tipo nvarchar(max) , varchar(max) , varbinary(max) , XML e di tipo definito dall'utente (UDT) in modalità nativa vengono archiviati con un prefisso a 4 byte come i dati text, image e ntext, anziché con un prefisso a 8 byte che rappresenta l'impostazione predefinita per SQL Server 2005 (9.x) e versioni successive.

Copia dei valori di data

bcp consente di usare l'API della copia bulk ODBC. Quindi, per importare i valori di dati in SQL Server, bcp usa il formato di data ODBC (aaaa-mm-gg hh:mm:ss[ .f... ]).

Il comando bcp esporterà sempre i file di dati in formato carattere usando il formato predefinito ODBC per i valori datetime e smalldatetime . Ad esempio, per una colonna datetime contenente la data 12 Aug 1998 verrà eseguita la copia bulk in un file di dati come stringa di caratteri 1998-08-12 00:00:00.000.

Importante

Quando si importano i dati in un campo smalldatetime usando il comando bcp, verificare che il valore relativo ai secondi sia 00.000; in caso contrario, l'operazione non riuscirà. Il tipo di dati smalldatetime contiene solo valori approssimati al minuto più vicino. In questa istanza, le istruzioni BULK INSERT e INSERT ... SELECT * FROM OPENROWSET(BULK...) verranno eseguite ma il valore dei secondi verrà troncato.

Per utilizzare formati di dati per l'importazione o l'esportazione bulk

Vedere anche

Utilità bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Tipi di dati (Transact-SQL)
Compatibilità con le versioni precedenti del motore di database di SQL Server
CAST e CONVERT (Transact-SQL)