Condividi tramite


Utilizzare il formato Unicode nativo per importare o esportare dati (SQL Server)

Il formato Unicode nativo risulta particolarmente utile quando è necessario copiare informazioni da un'installazione di Microsoft SQL Server a un'altra. L'utilizzo del formato nativo per i dati non carattere consente di risparmiare tempo evitando di dover eseguire la conversione dei tipi di dati in formato carattere e viceversa. L'utilizzo del formato carattere Unicode per tutti i dati di tipo carattere consente di evitare la perdita dei caratteri estesi durante il trasferimento bulk dei dati tra server che utilizzano tabelle codici diverse. Un file di dati in formato nativo Unicode è leggibile con qualsiasi metodo di importazione bulk.

Il formato nativo Unicode è consigliato per i trasferimenti bulk di dati tra più istanze di SQL Server utilizzando un file di dati che include caratteri estesi o DBCS. Per i dati non carattere, il formato nativo Unicode utilizza i tipi di dati (database) nativi. Per i dati carattere, ad esempio char, nchar, varchar, nvarchar, text, varchar(max), nvarchar(max) e ntext, il formato nativo Unicode utilizza il formato di dati carattere Unicode.

I dati sql_variant memorizzati come SQLVARIANT in un file di dati in formato nativo Unicode vengono gestiti in modo analogo a quanto avviene per un file di dati in formato nativo, fatta eccezione per il fatto che i valori char e varchar sono convertiti in nchar e nvarchar, raddoppiando lo spazio necessario per le colonne interessate. I metadati originali vengono mantenuti e i valori riconvertiti nel tipo di dati char e varchar originale quando viene eseguita l'importazione bulk in una colonna di tabella.

Opzioni di comando per il formato nativo Unicode

È possibile importare dati in formato nativo Unicode in una tabella utilizzando bcp, BULK INSERT o INSERT ... SELECT * FROM OPENROWSET(BULK...). Per un comando bcp o un'istruzione BULK INSERT è possibile specificare il formato dei dati nella riga di comando. Per un'istruzione INSERT ... SELECT * FROM OPENROWSET(BULK...) è necessario specificare il formato dei dati in un file di formato.

Il formato nativo Unicode è supportato dalle seguenti opzioni:

Comando

Opzione

Descrizione

bcp

-N

Determina l'utilizzo del formato nativo Unicode da parte dell'utilità bcp. Tale formato utilizza i tipi di dati (database) nativi per tutti i dati non carattere e il formato di dati carattere Unicode per tutti i dati carattere (char, nchar, varchar, nvarchar, text e ntext).

BULK INSERT

DATAFILETYPE = 'widenative'

Utilizzare il formato Unicode nativo per l'importazione bulk dei dati.

Per ulteriori informazioni, vedere Utilità bcp, BULK INSERT (Transact-SQL) o OPENROWSET (Transact-SQL).

[!NOTA]

In alternativa, è possibile definire la formattazione per ogni singolo campo in un file di formato. Per ulteriori informazioni, vedere File di formato per l'importazione o l'esportazione di dati (SQL Server).

Esempi

Negli esempi seguenti vengono illustrate le procedure per l'esportazione bulk dei dati nativi mediante il comando bcp e l'importazione bulk degli stessi dati mediante l'istruzione BULK INSERT.

Tabella di esempio

Gli esempi richiedono la creazione di una tabella denominata myTestUniNativeData nel database di esempio AdventureWorks all'interno dello schema dbo. prima di eseguire le procedure illustrate negli esempi. Nell'editor di query di SQL Server Management Studio eseguire:

USE AdventureWorks;
GO
CREATE TABLE myTestUniNativeData (
   Col1 smallint,
   Col2 nvarchar(50),
   Col3 nvarchar(50)
   ); 

Per popolare la tabella e visualizzare il contenuto risultante, eseguire le istruzioni seguenti:

INSERT INTO myTestUniNativeData(Col1,Col2,Col3)
   VALUES(1,'DataField2','DataField3');
INSERT INTO myTestUniNativeData(Col1,Col2,Col3)
   VALUES(2,'DataField2','DataField3');
GO
SELECT Col1,Col2,Col3 FROM myTestUniNativeData

Utilizzo del comando bcp per l'esportazione bulk di dati nativi

Per esportare i dati dalla tabella nel file di dati, utilizzare il comando bcp con l'opzione out e i seguenti qualificatori:

Qualificatori

Descrizione

-N

Specifica i tipi di dati nativi.

-T

Specifica che l'utilità bcp si connette a SQL Server tramite una connessione trusted che utilizza la sicurezza integrata. Se non si specifica -T, è necessario specificare le opzioni -U e -P per eseguire correttamente l'accesso.

Nel seguente esempio viene eseguita l'esportazione bulk dei dati in formato nativo dalla tabella myTestUniNativeData in un nuovo file di dati denominato myTestUniNativeData-N.Dat. Al prompt dei comandi di Microsoft Windows digitare:

bcp AdventureWorks..myTestUniNativeData out C:\myTestUniNativeData-N.Dat -N -T

Utilizzo dell'istruzione BULK INSERT per l'importazione bulk di dati nativi

Nell'esempio seguente viene utilizzato BULK INSERT per importare i dati dal file di dati myTestUniNativeData-N.Dat nella tabella myTestUniNativeData. Nell'editor di query di SQL Server Management Studio eseguire:

USE AdventureWorks;
GO
BULK INSERT myTestUniNativeData 
    FROM 'C:\myTestUniNativeData-N.Dat' 
   WITH (DATAFILETYPE='widenative'); 
GO
SELECT Col1,Col2,Col3 FROM myTestUniNativeData;
GO

Attività correlate

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

Vedere anche

Riferimento

Utilità bcp

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

Tipi di dati (Transact-SQL)