Condividi tramite


Utilizzo del formato carattere per l'importazione o l'esportazione di dati (SQL Server)

È consigliabile adottare il formato carattere per l'esportazione bulk in file di testo utilizzati in altri programmi o per l'importazione bulk da file di testo creati in altri programmi.

Nota

Quando si trasferiscono dati in blocco tra istanze di MicrosoftSQL Server e il file di dati contiene dati di tipo carattere Unicode ma non caratteri estesi o DBCS, usare il formato carattere Unicode. Per altre informazioni, vedere Usare il formato carattere Unicode per importare o esportare dati (SQL Server).

Quando si utilizza il formato carattere, in tutte le colonne viene applicato il formato dati di tipo carattere. L'archiviazione in formato carattere risulta utile quando i dati vengono utilizzati in altri programmi, ad esempio in un foglio di calcolo, o quando è necessario copiare in un'istanza di SQL Server i dati di database di altri fornitori, ad esempio Oracle.

Considerazioni sull'utilizzo del formato carattere

Quando si utilizza il formato carattere, è necessario tenere presenti i fattori seguenti:

  • Per impostazione predefinita, l'utilità bcp separa i campi di dati di tipo carattere con il carattere di tabulazioni e termina i record con il carattere di nuova riga. Per informazioni su come specificare caratteri di terminazione alternativi, vedere Impostazione dei caratteri di terminazione del campo e della riga (SQL Server).

  • Per impostazione predefinita, prima dell'esportazione o dell'importazione bulk di dati in modalità carattere, vengono eseguite le conversioni seguenti:

    Direzione dell'operazione bulk Conversione
    Esportazione I dati vengono convertiti in rappresentazione dei caratteri. Se richiesto in modo esplicito, la conversione viene eseguita in base alla tabella codici specificata per le colonne di tipo carattere. Se non è stata specificata alcuna tabella codici, i dati di tipo carattere vengono convertiti in base alla tabella codici OEM del computer client.
    Importa I dati di tipo carattere vengono convertiti in rappresentazione nativa, se necessario, e tradotti dalla tabella codici del client alla tabella codici delle colonne di destinazione.
  • Per impedire eventuali perdite di caratteri estesi durante la conversione, utilizzare il formato di carattere Unicode o specificare una tabella codici.

  • I dati sql_variant archiviati in un file in formato carattere risultano privi di metadati. Ogni valore viene convertito nel formato char in base alle regole di conversione dei dati implicita. I dati importati in colonne sql_variant risultano di tipo char. I dati importati in colonne con tipo di dati diverso da sql_variant vengono convertiti dal tipo di dati char tramite una conversione implicita. Per altre informazioni sulla conversione dei dati, vedere Conversione del tipo di dati (motore di database).

  • L'utilità bcp esporta money i valori come file di dati in formato carattere con quattro cifre dopo il separatore decimale e senza simboli di raggruppamento di cifre, ad esempio separatori di virgole. Ad esempio, una colonna money contenente il valore 1,234,567.123456 viene copiata in un file di dati come stringa di caratteri 1234567.1235 tramite l'esportazione bulk.

Opzioni del comando per il formato carattere

È possibile importare dati in formato carattere 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 carattere è supportato dalle opzioni della riga di comando seguenti:

Comando Opzione Descrizione
bcp -c Fa sì che l'utilità bcp usi i dati di tipo carattere. 1
BULK INSERT DATAFILETYPE ='char' Durante l'importazione bulk dei dati viene applicato il formato carattere.

1 Per caricare i dati di tipo carattere (-c) in un formato compatibile con le versioni precedenti di SQL Server client, usare l'opzione -V. Per altre informazioni, vedere Importare dati in formato nativo e carattere da versioni precedenti di SQL Server.

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 illustrano come eseguire l'esportazione bulk dei dati di tipo carattere con l'utilità bcp e l'importazione bulk degli stessi dati con l'istruzione BULK INSERT.

Tabella di esempio

Negli esempi si presuppone la presenza della tabella myTestCharData all'interno dello schema dbo del database di esempio AdventureWorks. Prima di eseguire le procedure illustrate negli esempi, è necessario creare la tabella. Per creare questa tabella, in SQL SQL Server Management Studio Editor di query eseguire:

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

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

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

Esportazione bulk di dati di tipo carattere tramite bcp

Per esportare i dati dalla tabella al file di dati, usare bcp con l'opzione out e i qualificatori seguenti:

Qualificatori Descrizione
-c Specifica il formato carattere.
-t, Specifica la virgola (,) come carattere di terminazione del campo.

Nota: il carattere di terminazione del campo predefinito è il carattere di tabulazione (\t). Per altre informazioni, vedere Impostazione dei caratteri di terminazione del campo e della riga (SQL Server).
-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.

Nell'esempio seguente viene eseguita l'esportazione bulk di dati in formato carattere dalla tabella myTestCharData a un nuovo file di dati denominato myTestCharData-c.Dat in cui il carattere di terminazione dei campi è la virgola (,). Al prompt dei comandi di Microsoft Windows immettere:

bcp AdventureWorks..myTestCharData out C:\myTestCharData-c.Dat -c -t, -T  
  

Importazione bulk di dati di tipo carattere tramite BULK INSERT

Nell'esempio seguente si utilizza BULK INSERT per importare i dati dal file di dati myTestCharData-c.Dat nella tabella myTestCharData. In SQL Server Management Studio Editor di query eseguire:

USE AdventureWorks;  
GO  
BULK INSERT myTestCharData   
   FROM 'C:\myTestCharData-c.Dat'   
   WITH (  
      DATAFILETYPE='char',  
      FIELDTERMINATOR=','  
   );   
GO  
SELECT Col1,Col2,Col3 FROM myTestCharData;  
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)
Importare dati in formato nativo e carattere da versioni precedenti di SQL Server