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 usando 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 dati in un file di formato.

Il formato nativo Unicode è supportato dalle seguenti opzioni:

Comando Opzione Descrizione
bcp -N Fa in modo che l'utilità bcp usi il formato nativo Unicode, che usa tipi di dati nativi (database) per tutti i dati non carattere e il formato di dati carattere Unicode per tutti i dati di tipo carattere (char, nchar, varchar, nvarchartext, e ntext).
BULK INSERT DATAFILETYPE ='widenative' Utilizzare il formato Unicode nativo per l'importazione bulk dei dati.

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

Nota

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

Esempio

Gli esempi seguenti mostrano come eseguire l'esportazione in blocco di dati nativi usando bcp e l'importazione in blocco degli stessi dati usando 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, è necessario creare la tabella. In SQL Server Management Studio Editor di query 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 al file di dati, usare bcp con l'opzione out e i qualificatori seguenti:

Qualificatori Descrizione
-N Specifica i tipi di dati nativi.
-T Specifica che l'utilità bcp si connette a SQL Server con una connessione trusted che usa la sicurezza integrata. Se non si specifica -T , è necessario specificare -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 immettere:

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 si utilizza BULK INSERT per importare i dati dal file di dati myTestUniNativeData-N.Dat nella tabella myTestUniNativeData. In SQL Server Management Studio Editor di query 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

Utilità bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Tipi di dati (Transact-SQL)