Importare dati in formato nativo e carattere da versioni precedenti di SQL Server
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Analytics Platform System (PDW)
In SQL Server 2014 (12.x) e versioni successive, è possibile usare bcp per importare dati in formato nativo e carattere da 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) usando l'opzione -V. Se si usa l'opzione -V, in SQL Server vengono usati tipi di dati della versione precedente specificata di SQL Server e 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 (10.0.x) | -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 6x | Tipi di dati compatibili nella versione 70 | Tipi di dati compatibili nella versione 80 |
---|---|---|---|
bigint | decimal | decimal | * |
sql_variant | Testo | nvarchar(4000) | * |
varchar(max) | Testo | Testo | Testo |
nvarchar(max) | ntext | ntext | ntext |
varbinary(max) | Immagine | Immagine | Immagine |
XML | ntext | ntext | ntext |
UDT** | Immagine | Immagine | Immagine |
*Questo tipo viene supportato a livello nativo.
**UDT indica un tipo definito dall'utente.
Esportazione usando –V 80
Quando si esportano in blocco 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, imagee 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.
Attività correlate
Per utilizzare formati di dati per l'importazione o l'esportazione bulk
Usare il formato carattere per importare o esportare dati (SQL Server)
Usare il formato nativo per importare o esportare dati (SQL Server)
Usare il formato carattere Unicode per importare o esportare dati (SQL Server)
Uso del formato Unicode nativo per importare o esportare dati (SQL Server)
Vedi 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)