Importare dati in formato nativo e carattere da versioni precedenti di SQL ServerImport Native and Character Format Data from Earlier Versions of SQL Server

In SQL Server 2017SQL Server 2017è possibile usare bcp per importare dati in formato nativo e carattere da SQL Server 2000SQL Server 2000, SQL Server 2005SQL Server 2005, SQL Server 2008SQL Server 2008, SQL Server 2008 R2SQL Server 2008 R2o da SQL Server 2012SQL Server 2012 usando l'opzione -V .In SQL Server 2017SQL Server 2017, you can use bcp to import native and character format data from SQL Server 2000SQL Server 2000, SQL Server 2005SQL Server 2005, SQL Server 2008SQL Server 2008, SQL Server 2008 R2SQL Server 2008 R2, or SQL Server 2012SQL Server 2012 by using the -V switch. Se si usa l'opzione -V , in SQL Server 2017SQL Server 2017 vengono usati tipi di dati della versione precedente specificata di SQL ServerSQL Servere il formato del file di dati corrisponderà al formato della versione precedente in questione.The -V switch causes SQL Server 2017SQL Server 2017 to use data types from the specified earlier version of SQL ServerSQL Server, and the data file format are the same as the format in that earlier version.

Per specificare una versione di SQL ServerSQL Server precedente per un file di dati, usare l'opzione -V con uno dei qualificatori seguenti:To specify an earlier SQL ServerSQL Server version for a data file, use the -V switch with one of the following qualifiers:

Versione di SQL ServerSQL Server version QualifierQualifier
SQL Server 2000SQL Server 2000 -V80-V80
SQL Server 2005SQL Server 2005 -V90-V90
SQL Server 2008SQL Server 2008 -V100-V100
SQL Server 2012SQL Server 2012 -V 110-V 110

Interpretazione dei tipi di datiInterpretation of Data Types

SQL Server 2005SQL Server 2005 e versioni successive supportano alcuni nuovi tipi. and later versions have support for some new types. Se si desidera importare un nuovo tipo di dati in una versione precedente di SQL ServerSQL Server , è necessario archiviarlo in un formato leggibile dai client bcp precedenti.When you want to import a new data type into an earlier SQL ServerSQL Server version, the data type must be stored in a format that readable by the older bcp clients. Nella seguente tabella viene riepilogata la modalità di conversione dei nuovi tipi di dati per la compatibilità con le versioni precedenti di SQL ServerSQL Server.The following table summarizes how the new data types are converted for compatibility with the earlier versions of SQL ServerSQL Server.

Nuovi tipi di dati in SQL Server 2005New data types in SQL Server 2005 Tipi di dati compatibili nella versione 6xCompatible data types in version 6x Tipi di dati compatibili nella versione 70Compatible data types in version 70 Tipi di dati compatibili nella versione 80Compatible data types in version 80
bigintbigint decimaldecimal decimaldecimal *
sql_variantsql_variant texttext nvarchar(4000)nvarchar(4000) *
varchar(max)varchar(max) texttext texttext texttext
nvarchar(max)nvarchar(max) ntextntext ntextntext ntextntext
varbinary(max)varbinary(max) imageimage imageimage imageimage
XMLXML ntextntext ntextntext ntextntext
UDTUDT imageimage imageimage imageimage

Questo tipo viene supportato a livello nativo.This type is natively supported.

UDT indica un tipo definito dall'utente.UDT indicates a user defined type.

Esportazione utilizzando –V 80Exporting using –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, imagee ntext , anziché con un prefisso a 8 byte che rappresenta l'impostazione predefinita per SQL Server 2005SQL Server 2005 e versioni successive.When you bulk export data by using the –V80 switch, nvarchar(max), varchar(max), varbinary(max), XML, and UDT data in native mode are stored with a 4-byte prefix, like text, image, and ntext data, rather than with an 8-byte prefix, which is the default for SQL Server 2005SQL Server 2005 and later versions.

Copia dei valori di dataCopying Date Values

bcp consente di usare l'API della copia bulk ODBC.bcp uses the ODBC bulk copy API. Quindi, per importare i valori di dati in SQL ServerSQL Server, bcp usa il formato di data ODBC (aaaa-mm-gg hh:mm:ss[.f...]).Therefore, to import date values into SQL ServerSQL Server, bcp uses the ODBC date format (yyyy-mm-dd 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 .The bcp command exports character format data files using the ODBC default format for datetime and smalldatetime values. 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.For example, a datetime column containing the date 12 Aug 1998 is bulk copied to a data file as the character string 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à.When importing data into a smalldatetime field using bcp, be sure the value for seconds is 00.000; otherwise the operation will fail. Il tipo di dati smalldatetime contiene solo valori approssimati al minuto più vicino.The smalldatetime data type only holds values to the nearest minute. In questa istanza, le istruzioni BULK INSERT e INSERT ... SELECT * FROM OPENROWSET(BULK...) verranno eseguite ma il valore dei secondi verrà troncato.BULK INSERT and INSERT ... SELECT * FROM OPENROWSET(BULK...) will not fail in this instance but will truncate the seconds value.

Per utilizzare formati di dati per l'importazione o l'esportazione bulkTo use data formats for bulk import or bulk export

Vedere ancheSee Also

bcp Utility bcp Utility
BULK INSERT (Transact-SQL) BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL) OPENROWSET (Transact-SQL)
Tipi di dati (Transact-SQL) Data Types (Transact-SQL)
Compatibilità con le versioni precedenti del Motore di database di SQL Server SQL Server Database Engine Backward Compatibility
CAST e CONVERT (Transact-SQL) CAST and CONVERT (Transact-SQL)