Utilità bcp

Si applica a: SQL Server (tutte le versioni supportate) Azure SQL Database Istanza gestita di SQL di Azure Azure Synapse Analytics Analytics Platform System (PDW)

Per l'uso di bcp in Linux, vedere le istruzioni per l'installazione di sqlcmd e bcp in Linux.

Per informazioni dettagliate sull'uso di bcp con Azure Synapse Analytics, vedere Caricare dati con bcp.

L'utilità bulk copy program (bcp) copia in blocco i dati tra un'istanza di Microsoft SQL Server e un file di dati in un formato specificato dall'utente. L'utilità bcp può essere usata per importare un numero elevato di nuove righe in tabelle SQL Server o per esportare dati da tabelle in file di dati. Tranne quando viene usata con l'opzione queryout , l'utilità non richiede alcuna conoscenza di Transact-SQL. Per importare dati in una tabella, è necessario utilizzare un file di formato creato per la tabella specifica oppure conoscere approfonditamente la struttura della tabella e i tipi di dati validi per le relative colonne.

Icona di collegamento all'argomentoIcona di Per le convenzioni di sintassi usate per la sintassi bcp, vedere Convenzioni della sintassi Transact-SQL (Transact-SQL).

Nota

Se si esegue il backup dei dati con bcp , creare un file di formato per registrare il formato dei dati. I file di dati dibcpnon includono alcuna informazione sullo schema o sul formato. Di conseguenza, se si elimina una tabella o una vista e non è disponibile un file di formato, può non essere possibile importare i dati.

Scaricare la versione più recente della utilità bcp

Scaricare Utilità della riga di comando Microsoft 15 per SQL Server (x64)
Scaricare Microsoft Command Line Utilities 15 per SQL Server (x86)

Gli strumenti da riga di comando sono disponibilità generale (GA), ma vengono rilasciati con il pacchetto del programma di installazione per SQL Server 2019 (15.x).

Informazioni sulla versione

Numero di versione: 15.0.2
Numero di build: 15.0.2000.5
Data di rilascio: 11 settembre 2020

La nuova versione di SQLCMD supporta l'autenticazione di Azure AD e include anche il supporto di Multi-Factor Authentication (MFA) per il database SQL, Azure Synapse Analytics e Always Encrypted. Il nuovo BCP supporta l'autenticazione di Azure AD e include anche il supporto di Multi-Factor Authentication (MFA) per il database SQL e Azure Synapse Analytics.

Requisiti di sistema

Windows 11, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022

Per questo componente sono necessari sia Windows Installer 4.5 che Microsoft ODBC Driver 17 for SQL Server.

Per controllare la versione di BCP, eseguire il comando bcp /v e verificare che sia in uso la versione 15.0.2000.5 o successiva.

Sintassi
bcp [database_name.] schema.{table_name | view_name | "query"}
    {in data_file | out data_file | queryout data_file | format nul}
                                                                                                         
    [-a packet_size]
    [-b batch_size]
    [-c]
    [-C { ACP | OEM | RAW | code_page } ]
    [-d database_name]
    [-D]
    [-e err_file]
    [-E]
    [-f format_file]
    [-F first_row]
    [-G Azure Active Directory Authentication]
    [-h"hint [,...n]"]
    [-i input_file]
    [-k]
    [-K application_intent]
    [-l login_timeout]
    [-L last_row]
    [-m max_errors]
    [-n]
    [-N]
    [-o output_file]
    [-P password]
    [-q]
    [-r row_term]
    [-R]
    [-S [server_name[\instance_name]]
    [-t field_term]
    [-T]
    [-U login_id]
    [-v]
    [-V (80 | 90 | 100 | 110 | 120 | 130 ) ]
    [-w]
    [-x]

Argomenti

data_file
Percorso completo del file di dati. Quando i dati vengono importati in blocco in SQL Server, il file di dati contiene i dati da copiare nella tabella o nella vista specificata. Quando i dati vengono esportati in blocco da SQL Server, il file di dati contiene i dati copiati dalla tabella o dalla vista. Il percorso può essere costituito da un numero di caratteri compreso tra 1 e 255. Il file di dati può contenere un massimo di 2^63 - 1 righe.

Database_name
Nome del database in cui si trova la tabella o la vista specificata. Se tale valore non è specificato, il database è quello predefinito dell'utente.

È anche possibile specificare in modo esplicito il nome del database con -d.

indata_file | outdata_file | queryoutdata_file | format nul
Specifica la direzione della copia bulk nel modo seguente:

  • in esegue la copia da un file nella tabella o nella vista del database.

  • out esegue la copia dalla tabella o dalla vista del database in un file. Se si specifica un file esistente, il file viene sovrascritto. Durante l'estrazione dei dati, l'utilità bcp rappresenta una stringa vuota come Null e una stringa Null come stringa vuota.

  • queryout esegue la copia da una query e deve essere specificata solo in caso di copia bulk di dati da una query.

  • format crea un file di formato basato sull'opzione specificata ( -n, -c, -wo -N) e sui delimitatori della tabella o della vista. Durante la copia bulk dei dati, il comando bcp può fare riferimento a un file di formato e si può quindi evitare di immettere nuovamente le informazioni sul formato in modo interattivo. L'opzione format richiede l'opzione -f . Se si crea un file di formato XML, è necessaria anche l'opzione -x . Per altre informazioni, vedere Creare un file di formato (SQL Server).For more information, see Create a Format File (SQL Server). È necessario specificare nul come valore (format nul).

Schema
Nome del proprietario della tabella o della vista. lo schema è facoltativo se l'utente che esegue l'operazione possiede la tabella o la vista specificata. Se lo schema non viene specificato e l'utente che esegue l'operazione non possiede la tabella o la vista specificata, SQL Server restituisce un messaggio di errore e l'operazione viene annullata.

"query" È una query Transact-SQL che restituisce un set di risultati. Se la query restituisce più set di risultati, nel file di dati viene copiato solo il primo set, mentre quelli successivi vengono ignorati. Racchiudere la query tra virgolette doppie e utilizzare le virgolette singole per altri elementi inclusi nella query. L'opzionequeryout deve essere specificata solo in caso di copia bulk di dati da una query.

La query può fare riferimento a una stored procedure a condizione che tutte le tabelle cui viene fatto riferimento nella stored procedure siano disponibili prima dell'esecuzione dell'istruzione bcp. Se, ad esempio, la stored procedure genera una tabella temporanea, l'istruzione bcp ha esito negativo poiché la tabella è disponibile solo in fase di esecuzione e non nel momento in cui viene eseguita l'istruzione. In questo caso, è opportuno inserire i risultati della stored procedure in una tabella e usare bcp per copiare i dati dalla tabella in un file di dati.

Table_name
Nome della tabella di destinazione durante l'importazione di dati in SQL Server (in) e la tabella di origine durante l'esportazione di dati da SQL Server (out).

view_name
Nome della visualizzazione di destinazione durante la copia dei dati in SQL Server (in) e la visualizzazione di origine durante la copia dei dati da SQL Server (out). È possibile utilizzare come viste di destinazione solo quelle in cui tutte le colonne fanno riferimento alla stessa tabella. Per altre informazioni sulle restrizioni per la copia dei dati in viste, vedere INSERT (Transact-SQL).For more information on the restrictions for copying data into views, see INSERT (Transact-SQL).

-apacket_size
Specifica il numero di byte inviati al e dal server per ogni pacchetto di rete. È possibile impostare un'opzione di configurazione del server usando SQL Server Management Studio (o la stored procedure di sistema sp_configure). Questa opzione, tuttavia, ha la precedenza sull'opzione di configurazione del server. Il valore dipacket_size può essere compreso tra 4096 byte e 65535 byte. Il valore predefinito è 4096.

Le prestazioni delle operazioni di copia bulk migliorano con l'aumentare delle dimensioni del pacchetto. Se è richiesta una dimensione del pacchetto maggiore di quella consentita, viene utilizzato il valore predefinito. Le statistiche sulle prestazioni generate dall'utilità bcp indicano le dimensioni del pacchetto in uso.

-bbatch_size
Specifica il numero di righe per ogni batch di dati importati. Ogni batch viene importato e registrato come transazione distinta che importa l'intero batch prima del commit. Per impostazione predefinita, tutte le righe incluse nel file di dati vengono importate come un unico batch. Per distribuire le righe tra più batch, specificare un valore di batch_size inferiore al numero di righe presenti nel file di dati. Se la transazione per un batch non viene completata correttamente, viene eseguito il rollback solo degli inserimenti dal batch corrente. I batch già importati dalle transazioni di cui è stato eseguito il commit non sono influenzati in caso di esito negativo.

Non usare questa opzione insieme all'opzione -h "ROWS_PER_BATCH =bb".

-c
Esegue l'operazione utilizzando un tipo di dati carattere. Questa opzione non determina la visualizzazione di una richiesta per ogni campo, ma usa char come tipo di archiviazione, senza prefissi e con il carattere di tabulazione ( \t ) come separatore di campo e il carattere di nuova riga ( \r\n ) come carattere di terminazione della riga. -c non è compatibile con -w.

Per altre informazioni, vedere Usare il formato carattere per importare o esportare dati (SQL Server).For more information, see Use Character Format to Import or Export Data (SQL Server).

-C { ACP | OEM | RAW | code_page }
Specifica la tabella codici dei dati contenuti nel file di dati. code_page è pertinente solo se i dati contengono colonne di tipo char, varcharo text con valori di carattere maggiori di 127 o minori di 32.

Nota

È consigliabile specificare un nome regole di confronto per ogni colonna in un file di formato tranne quando si vuole assegnare all'opzione 65001 la priorità sulla specifica delle regole di confronto o della tabella codici.

Valore tabella codici Descrizione
ACP ANSI/Microsoft Windows (ISO 1252).
OEM Tabella codici predefinita utilizzata dal client. Si tratta della tabella codici predefinita usata se non si specifica -C .
RAW Non vengono eseguite conversioni tra tabelle codici. Per questo motivo, si tratta dell'opzione più rapida.
code_page Numero di tabella codici specifico, ad esempio 850.

Le versioni precedenti alla versione 13 (SQL Server 2016 (13.x)) non supportano la tabella codici 65001 (codifica UTF-8). Le versioni che iniziano con 13 possono importare la codifica UTF-8 nelle versioni precedenti di SQL Server.

-ddatabase_name
Specifica il database al quale connettersi. Per impostazione predefinita, bcp.exe si connette al database predefinito dell'utente. Se si specificano -d database_name e un nome in tre parti (database_name.schema.table, passato come primo parametro a bcp.exe), si verificherà un errore poiché non è possibile specificare due volte il nome del database. Se database_name inizia con un trattino (-) o una barra (/), non aggiungere uno spazio tra -d e il nome del database.

-D
Indica che il valore passato all'opzione di bcp-S deve essere interpretato come nome dell'origine dati (DSN). Può essere utile usare un DSN per incorporare le opzioni del driver. Sarà così possibile semplificare le righe di comando, applicare opzioni del driver altrimenti inaccessibili dalla riga di comando, ad esempio MultiSubnetFailover, o impedire che credenziali sensibili siano individuabili come argomenti della riga di comando. Per altre informazioni, vedere Supporto di DSN in sqlcmd e bcp in Connessione con sqlcmd.

-eerr_file
Specifica il percorso completo di un file di errori usato per archiviare le eventuali righe che l'utilità bcp non è in grado di trasferire dal file al database. I messaggi di errore generati dal comando bcp vengono inviati alla workstation dell'utente. Se questa opzione non viene utilizzata, non viene creato alcun file degli errori.

Se err_file inizia con un segno meno (-) o una barra (/), non includere uno spazio tra -e e il valore err_file .

-E

Specifica che il valore o i valori Identity presenti nel file di dati importato devono essere usati per la colonna Identity. Se -E non viene specificato, i valori Identity per questa colonna nel file di dati da importare vengono ignorati e SQL Server assegna automaticamente valori univoci in base ai valori di inizializzazione e incremento specificati durante la creazione della tabella. Per altre informazioni, vedere DBCC CHECKIDENT.

Se il file di dati non contiene valori per la colonna Identity nella tabella o nella vista, utilizzare un file di formato per specificare che la colonna Identity nella tabella o nella vista deve essere ignorata durante l'importazione dei dati; SQL Server assegna automaticamente valori univoci per la colonna.

L'opzione -E è caratterizzata da requisiti di autorizzazione speciali. Per altre informazioni, vedere la sezione "Osservazioni" di seguito in questo argomento.

-fformat_file
Specifica il percorso completo di un file di formato. Il significato di questa opzione dipende dall'ambiente in cui viene utilizzata, come descritto di seguito:

  • Se l'opzione -f viene usata con l'opzione format , per la tabella o per la vista indicata verrà creato il file format_file specificato. Per creare un file di formato XML, è necessario specificare anche l'opzione -x . Per altre informazioni, vedere Creare un file di formato (SQL Server).For more information, see Create a Format File (SQL Server).

  • Se si usa con l'opzione in o out , -f richiede un file di formato esistente.

    Nota

    L'uso di un file di formato con l'opzione in o out è facoltativo. Se l'opzione -f viene omessa e non si specifica -n, -c, -wo -N , il comando richiede l'immissione di informazioni sul formato e consente di salvare le risposte in un file di formato il cui nome predefinito è Bcp.fmt.

Se format_file inizia con un segno meno (-) o una barra (/), non includere uno spazio tra -f e il valore format_file .

-Ffirst_row
Specifica il numero della prima riga da esportare da una tabella o da importare da un file di dati. Questo parametro richiede un valore maggiore di (>) 0, ma minore di (<) o uguale a (=) per le righe del numero totale. Se il parametro viene omesso, l'impostazione predefinita è la prima riga del file.

first_row può essere un numero intero positivo con valore massimo pari a 2^63-1. -Ffirst_row è in base 1.

-G

Questa opzione viene usata dal client durante la connessione al database SQL di Azure o ad Azure Synapse Analytics per specificare che l'utente deve essere autenticato tramite l'autenticazione di Azure Active Directory. L'opzione -G richiede la versione 14.0.3008.27 o una versione successiva. Per determinare la versione, eseguire bcp-v. Per altre informazioni, vedere Usare l'autenticazione di Azure Active Directory per l'autenticazione a un database SQL o ad Azure Synapse Analytics.

Importante

L'opzione -G si applica solo a Azure SQL Database e Azure Synapse Analytics. L'autenticazione integrata di AAD non è attualmente supportata in Linux o macOS. L'autenticazione integrata di AAD richiede Microsoft ODBC Driver 17 per SQL Server versione 17.6.1 o successiva e un ambiente Kerberos configurato correttamente.

Suggerimento

Per verificare se la versione di bcp include il supporto per l'autenticazione di Azure Active Directory (AAD) di tipo bcp -- (trattino><> dello spazio><bcp<) e verificare che venga visualizzato -G nell'elenco degli argomenti disponibili.

  • Nome utente e password di Azure Active Directory:

    Quando si vuole usare nome utente e password di Azure Active Directory, è possibile fornire l'opzione -G e anche usare nome utente e password fornendo le opzioni -U e -P .

    Nell'esempio seguente vengono esportati i dati usando nome utente e password di Azure AD, corrispondenti alle credenziali di AAD. L'esempio esporta la tabella bcptest del database testdb dal server di Azure aadserver.database.windows.net e archivia i dati nel file c:\last\data1.dat:

    bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
    

    Nell'esempio seguente vengono importati i dati usando nome utente e password di Azure AD, corrispondenti alle credenziali di AAD. L'esempio importa i dati dal file c:\last\data1.dat nella tabella bcptest per il database testdb sul server di Azure aadserver.database.windows.net usando utente e password di Azure AD:

    bcp bcptest in "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
    
  • Integrazione con Azure Active Directory

    Per l'autenticazione integrata di Azure Active Directory, fornire l'opzione -G senza nome utente o password. Questa configurazione presuppone che l'account utente di Windows corrente, ovvero l'account con cui viene eseguito il comando bcp, sia federato con Azure AD:

    Nell'esempio seguente i dati vengono esportati usando l'account integrato in Azure AD. L'esempio esporta la tabella bcptest del database testdb dal server di Azure aadserver.database.windows.net usando un account integrato in Azure AD e archivia i dati nel file c:\last\data2.dat:

    bcp bcptest out "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c -t
    

    Nell'esempio seguente i dati vengono importati usando l'autorizzazione integrata di Azure AD. L'esempio importa i dati dal file c:\last\data2.txt nella tabella bcptest per il database testdb sul server di Azure aadserver.database.windows.net usando l'autorizzazione integrata di Azure AD:

    bcp bcptest in "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c -t
    
  • Azure Active Directory Interactive

    L'autenticazione interattiva di Azure AD per il database SQL di Azure e Azure Synapse Analytics consente di usare un metodo interattivo che supporta l'autenticazione a più fattori. Per altre informazioni, vedere Autenticazione interattiva di Active Directory.

    La modalità interattiva di Azure AD richiede bcpversione 15.0.1000.34 o successiva, nonché ODBC 17.2 o versioni successive.

    Per abilitare l'autenticazione interattiva, specificare l'opzione -G solo con il nome utente (-U) senza una password.

    Nell'esempio seguente vengono esportati i dati usando la modalità interattiva di Azure AD e indicando il nome utente che rappresenta un account AAD. Si tratta dello stesso esempio usato nella sezione precedente: Nome utente e password di Azure Active Directory.

    Per la modalità interattiva è necessario immettere manualmente una password o, per gli account con l'autenticazione a più fattori abilitata, completare il metodo di autenticazione a più fattori configurato.

    bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com
    

    Nel caso in cui un utente di Azure AD sia un dominio federato usando un account di Windows, il nome utente richiesto nella riga di comando contiene il proprio account di dominio (ad esempio, joe@contoso.com vedere di seguito):

    bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U joe@contoso.com
    

    Se in un'istanza specifica di Azure AD esistono utenti guest che fanno parte di un gruppo presente nel database SQL con autorizzazioni di database che consentono di eseguire il comando bcp, viene usato l'alias utente guest, ad esempio keith0@adventureworks.com .

-h"load hints[ ,... n] " Specifica l'hint o gli hint da utilizzare durante un'importazione bulk dei dati in una tabella o in una vista.

  • ORDER(column[ASC | DESC] [ , ...n])
    Tipo di ordinamento dei dati nel file di dati. Le prestazioni dell'importazione bulk sono migliori se i dati da importare vengono ordinati in base all'indice cluster della tabella, se disponibile. Se il file di dati viene ordinato in modo diverso rispetto all'ordine di una chiave di indice cluster o se la tabella non include un indice cluster, la clausola ORDER viene ignorata. I nomi di colonna specificati devono corrispondere a nomi di colonna validi nella tabella di destinazione. Per impostazione predefinita, bcp presuppone che il file di dati non sia ordinato. Per l'importazione bulk ottimizzata, SQL Server verifica anche che i dati importati siano ordinati.

  • = ROWS_PER_BATCH Bb
    Numero di righe di dati per batch (come bb). Viene usato quando non si specifica -b e quindi l'intero file di dati viene inviato al server come singola transazione. Il server ottimizza il caricamento bulk in base al valore bb. Per impostazione predefinita, il valore ROWS_PER_BATCH è sconosciuto.

  • = KILOBYTES_PER_BATCH Cc
    Numero approssimativo di kilobyte di dati per batch (come cc). Per impostazione predefinita, il valore KILOBYTES_PER_BATCH è sconosciuto.

  • TABLOCK
    Specifica che viene acquisito un blocco a livello di tabella per l'aggiornamento bulk per la durata dell'operazione di caricamento bulk. In caso contrario, viene acquisito un blocco di riga. Questo hint migliora significativamente le prestazioni, in quanto il mantenimento di un blocco per la durata dell'operazione di copia bulk riduce la contesa dei blocchi per la tabella. Una tabella può essere caricata simultaneamente da più client se non include indici e si specifica TABLOCK . Per impostazione predefinita, la modalità di blocco è determinata dall'opzione table lock on bulkload della tabella.

    Nota

    Se la tabella di destinazione è un indice columnstore cluster, l'hint TABLOCK non è necessario per il caricamento da parte di più client simultanei perché a ogni thread simultaneo viene assegnato un rowgroup separato all'interno dell'indice e carica i dati. Per informazioni dettagliate, fare riferimento alle informazioni relative all'indice columnstore,

    CHECK_CONSTRAINTS
    Specifica che tutti i vincoli sulla tabella o sulla vista di destinazione devono essere controllati durante l'operazione di importazione bulk. Se non si specifica l'hint CHECK_CONSTRAINTS, i vincoli CHECK e FOREIGN KEY vengono ignorati e al termine dell'operazione il vincolo sulla tabella viene contrassegnato come non attendibile.

    Nota

    I vincoli UNIQUE, PRIMARY KEY e NOT NULL vengono sempre applicati.

    In un determinato momento sarà necessario controllare i vincoli sull'intera tabella. Se prima dell'operazione di importazione bulk la tabella non è vuota, il costo per la riconvalida del vincolo potrebbe essere superiore a quello correlato all'applicazione dei vincoli CHECK ai dati incrementali. È pertanto consigliabile abilitare in genere il controllo dei vincoli durante un'importazione bulk incrementale.

    Una situazione in cui può essere necessario disabilitare i vincoli (comportamento predefinito) è rappresentata dal caso in cui i dati di input contengono righe che violano i vincoli. Con i vincoli CHECK disabilitati, è possibile importare i dati e quindi usare istruzioni Transact-SQL per rimuovere i dati non validi.

    Nota

    L'utilitàbcp ora esegue la convalida e i controlli dei dati che potrebbero causare la mancata esecuzione degli script quando questi vengono eseguiti su dati non validi inclusi in un file di dati.

    Nota

    L'opzione -mmax_errors non è valida per il controllo dei vincoli.

  • FIRE_TRIGGERS
    Se specificato con l'argomento in , determina l'esecuzione dei trigger di inserimento definiti nella tabella di destinazione durante l'operazione di copia bulk. Se non si specifica FIRE_TRIGGERS, non viene eseguito alcun trigger di inserimento. FIRE_TRIGGERS viene ignorato per gli argomenti out, queryoute format .

-iinput_file
Specifica il nome di un file di risposta contenente le risposte alle domande del prompt dei comandi per ogni campo dati quando si esegue una copia bulk in modalità interattiva, ovvero senza indicare -n, -c, -wo -N .

Se input_file inizia con un segno meno (-) o una barra (/), non includere uno spazio tra -i e il valore input_file .

-k
Specifica che durante l'operazione il valore delle colonne vuote deve essere Null, ovvero che non verranno inseriti valori predefiniti in tali colonne. Per altre informazioni, vedere Mantenere i valori Null o usare valori predefiniti durante l'importazione bulk (SQL Server).For more information, see Keep Nulls or Use Default Values During Bulk Import (SQL Server).

-Kapplication_intent
Dichiara il tipo di carico di lavoro dell'applicazione in caso di connessione a un server. L'unico valore consentito è ReadOnly. Se l'opzione -K non è specificata, l'utilità bcp non supporterà la connettività a una replica secondaria in un gruppo di disponibilità Always On. Per altre informazioni, vedere Repliche secondarie attive: repliche secondarie leggibili (Always On gruppi di disponibilità).

-llogin_timeout
Specifica un timeout accesso. L'opzione -l specifica il numero di secondi che devono trascorrere prima che si verifichi il timeout di un accesso a SQL Server quando si tenta la connessione a un server. Il timeout di accesso predefinito è 15 secondi. Il valore del timeout deve essere un numero compreso tra 0 e 65534. Se il valore specificato non è numerico o non è compreso in tale intervallo, bcp genera un messaggio di errore. Il valore 0 specifica un timeout infinito.

-Llast_row
Specifica il numero dell'ultima riga da esportare da una tabella o da importare da un file di dati. Questo parametro richiede un valore maggiore di (>) 0 ma minore di (<) o uguale a (=) il numero dell'ultima riga. Se il parametro viene omesso, l'impostazione predefinita è l'ultima riga del file.

last_row può essere un numero intero positivo con valore massimo pari a 2^63-1.

-mmax_errors
Specifica il numero massimo di errori di sintassi che possono verificarsi prima dell'annullamento dell'operazione bcp . Un errore di sintassi implica un errore di conversione dei dati nel tipo di dati di destinazione. Nel valore totale restituito da max_errors sono esclusi tutti gli errori che possono essere rilevati solo a livello del server, ad esempio le violazioni dei vincoli.

Una riga che non può essere copiata dall'utilità bcp viene ignorata e conteggiata come errore. Se l'opzione viene omessa, il valore predefinito è 10.

Nota

L'opzione -m non è valida per la conversione dei tipi di dati money o bigint .

-n
Esegue l'operazione di copia bulk utilizzando i tipi di dati nativi del database. Con questa opzione non viene visualizzata una richiesta per ogni campo, ma vengono utilizzati i valori nativi.

Per altre informazioni, vedere Usare il formato nativo per importare o esportare dati (SQL Server).For more information, see Use Native Format to Import or Export Data (SQL Server).

-N
Esegue l'operazione di copia bulk utilizzando i tipi di dati nativi del database per i dati non di tipo carattere e i caratteri Unicode per i dati di tipo carattere. Questa opzione offre un'alternativa a prestazioni più elevate all'opzione -w ed è destinata al trasferimento di dati da un'istanza di SQL Server a un'altra usando un file di dati. Non viene visualizzata una richiesta per ogni campo. Utilizzare questa opzione per trasferire dati contenenti caratteri ANSI estesi se si desidera sfruttare le prestazioni della modalità nativa.

Per altre informazioni, vedere Usare il formato nativo Unicode per importare o esportare dati (SQL Server).For more information, see Use Unicode Native Format to Import or Export Data (SQL Server).

Se si esportano e successivamente si importano i dati nello stesso schema di tabella usando bcp.exe con -N, può essere visualizzato un avviso di troncamento se è presente una colonna contenente caratteri non Unicode a lunghezza fissa, ad esempio char(10) .

L'avviso può essere ignorato. Per evitare la visualizzazione dell'avviso, usare -n invece di -N.

-ooutput_file
Specifica il nome di un file in cui viene reindirizzato l'output dal prompt dei comandi.

Se output_file inizia con un segno meno (-) o una barra (/), non includere uno spazio tra -o e il valore output_file .

-Ppassword
Specifica la password per l'ID di accesso. Se si omette questa opzione, il comando bcp richiede una password. Se l'opzione viene specificata alla fine del prompt dei comandi senza indicare una password, bcp userà la password predefinita (NULL).

Importante

Non usare una password vuota. Usare una password complessa.

Per nascondere la password, non specificare l'opzione -P in combinazione con l'opzione -U . Dopo aver specificato il comando bcp con -U e altre opzioni (non specificare -P) premere INVIO. Il comando richiederà l'immissione di una password. Questo metodo garantisce che la password venga nascosta durante l'immissione.

Se password inizia con un segno meno (-) o una barra (/), non aggiungere uno spazio tra -P e il valore password .

-q
Esegue l'istruzione SET QUOTED_IDENTIFIERS ON nella connessione tra l'utilità bcp e un'istanza di SQL Server. Questa opzione consente di specificare il nome di un database, di un proprietario, di una tabella o di una vista che include uno spazio o una virgoletta singola. Racchiudere tra virgolette doppie (" ") l'intero nome in tre parti della tabella o della vista.

Per specificare un nome di database contenente uno spazio o una virgoletta singola, è necessario usare l'opzione -q.

-q non è applicabile ai valori passati a -d.

Per altre informazioni, vedere la sezione Osservazionidi seguito in questo argomento.

-rrow_term
Specifica il carattere di terminazione della riga. Il valore predefinito è \n (carattere di nuova riga). Utilizzare questo parametro per specificare un carattere di terminazione della riga diverso da quello predefinito. Per altre informazioni, vedere Impostazione dei caratteri di terminazione del campo e della riga (SQL Server).

Se si specifica il carattere di terminazione della riga in notazione esadecimale nel comando bcp.exe, il valore verrà troncato in corrispondenza di 0x00. Se ad esempio si specifica 0x410041, verrà utilizzato 0x41.

Se row_term inizia con un segno meno (-) o una barra (/), non includere uno spazio tra -r e il valore row_term .

-R
Specifica che i dati di valuta, data e ora vengono copiati in blocco in SQL Server utilizzando il formato di area definito per l'impostazione delle impostazioni locali del computer client. Per impostazione predefinita, le impostazioni internazionali vengono ignorate.

-Sserver_name [\instance_name] Specifica l'istanza di SQL Server a cui connettersi. Se non viene specificato alcun server, l'utilità bcp si connette all'istanza predefinita di SQL Server nel computer locale. È necessario specificare questa opzione se un comando bcp viene eseguito da un computer remoto in rete o in un'istanza denominata locale. Per connettersi all'istanza predefinita di SQL Server in un server, specificare solo server_name. Per connettersi a un'istanza denominata di SQL Server, specificare server_name instance_name\.

-tfield_term
Specifica il carattere di terminazione del campo. Il valore predefinito è \t (carattere di tabulazione). Utilizzare questo parametro per specificare un carattere di terminazione del campo diverso da quello predefinito. Per altre informazioni, vedere Impostazione dei caratteri di terminazione del campo e della riga (SQL Server).

Se si specifica il carattere di terminazione del campo in notazione esadecimale nel comando bcp.exe, il valore verrà troncato in corrispondenza di 0x00. Se ad esempio si specifica 0x410041, verrà utilizzato 0x41.

Se field_term inizia con un segno meno (-) o una barra (/), non includere uno spazio tra -t e il valore field_term .

-T
Specifica che l'utilità bcp si connette a SQL Server con una connessione attendibile tramite la sicurezza integrata. Non è necessario specificare le credenziali di sicurezza dell'utente di rete, ovvero login_ide password . Se non si specifica -T , è necessario specificare -U e -P per eseguire correttamente l'accesso.

Importante

Quando l'utilità bcp si connette a SQL Server con una connessione attendibile usando la sicurezza integrata, usare l'opzione -T (connessione attendibile) anziché la combinazione di nome utente e password. Quando l'utilità bcp si connette al database SQL o ad Azure Synapse Analytics tramite l'autenticazione di Windows o l'autenticazione di Azure Active Directory, l'opzione non è supportata. Usare le opzioni - U e -P .

-Ulogin_id
Specifica l'ID di accesso utilizzato per connettersi a SQL Server.

Importante

Quando l'utilità bcp si connette a SQL Server con una connessione attendibile usando la sicurezza integrata, usare l'opzione -T (connessione attendibile) anziché la combinazione di nome utente e password. Quando l'utilità bcp si connette al database SQL o ad Azure Synapse Analytics tramite l'autenticazione di Windows o l'autenticazione di Azure Active Directory, l'opzione non è supportata. Usare le opzioni - U e -P .

-v
Visualizza il numero di versione e le informazioni sul copyright per l'utilità bcp .

-V (80 | 90 | 100 | 110 | 120 | 130)
Esegue l'operazione di copia bulk usando i tipi di dati di una versione precedente di SQL Server. Con questa opzione non viene visualizzata una richiesta per ogni campo, ma vengono utilizzati i valori predefiniti.

80 = SQL Server 2000 (8,x)

90 = SQL Server 2005 (9,x)

100 = SQL Server 2008 e SQL Server 2008 R2

110 = SQL Server 2012 (11,x)

120 = SQL Server 2014 (12,x)

130 = SQL Server 2016 (13,x)

Ad esempio, per generare dati per i tipi non supportati da SQL Server 2000 (8.x), ma sono stati introdotti nelle versioni successive di SQL Server, usare l'opzione -V80.

Per altre informazioni, vedere Importare dati in formato nativo e carattere da versioni precedenti di SQL Server.

-w
Esegue l'operazione di copia bulk utilizzando caratteri Unicode. Questa opzione non visualizza una richiesta per ogni campo, ma usa nchar come tipo di archiviazione, il carattere di tabulazione ( \t ) come separatore dei campi e il carattere di nuova riga ( \n ) come carattere di terminazione della riga e non usa alcun prefisso. -w non è compatibile con -c.

Per altre informazioni, vedere Usare il formato carattere Unicode per importare o esportare dati (SQL Server).For more information, see Use Unicode Character Format to Import or Export Data (SQL Server).

-x
Se usato con le opzioni format e -fformat_file, genera un file di formato basato su XML anziché un file di formato predefinito non XML. L'opzione -x non può essere usata per l'importazione o l'esportazione dei dati. Genera un errore se viene usata senza format e -fformat_file.

Osservazioni

  • Il client bcp 13.0 viene installato quando si installano gli strumenti di Microsoft SQL Server 2019 (15.x). Se gli strumenti vengono installati per più versioni di SQL Server, a seconda dell'ordine dei valori della variabile di ambiente PATH, è possibile usare il client bcp precedente anziché il client bcp 13.0. La variabile di ambiente definisce il set di directory utilizzato in Windows per la ricerca di file eseguibili. Per determinare la versione in uso, eseguire il comando bcp /v o bcp -v al prompt dei comandi di Windows. Per informazioni su come impostare il percorso di comando nella variabile di ambiente PATH, vedere Variabili di ambiente o cercare le variabili di ambiente nella Guida di Windows.

    Per assicurarsi che sia in esecuzione la versione più recente dell'utilità bcp, è necessario rimuovere le versioni precedenti dell'utilità bcp.

    Per determinare la posizione di installazione di tutte le versioni dell'utilità bcp, digitare nel prompt dei comandi:

    where bcp.exe
    
  • L'utilità bcp può anche essere scaricata separatamente dal Microsoft SQL Server 2016 Feature Pack. Selezionare ENU\x64\MsSqlCmdLnUtils.msi o ENU\x86\MsSqlCmdLnUtils.msi.

  • I file di formato XML sono supportati solo quando gli strumenti di SQL Server vengono installati insieme a SQL Server Native Client.

  • Per informazioni su dove trovare o come eseguire l'utilità bcp e sulle convenzioni della sintassi delle utilità del prompt dei comandi, vedere Guida di riferimento all'utilità del prompt dei comandi (motore di database).

  • Per informazioni sulla preparazione dei dati per le operazioni di importazione o esportazione bulk, vedere Preparare i dati per l'esportazione o l'importazione bulk (SQL Server).

  • Per informazioni sui casi in cui le operazioni di inserimento di righe eseguite durante l'importazione in blocco vengono registrate nel log delle transazioni, vedere Prerequisiti per la registrazione minima nell'importazione in blocco.

  • Uso di caratteri speciali aggiuntivi

    I caratteri <, >, |, &, ^ sono caratteri speciali della shell dei comandi e devono essere preceduti dal carattere di escape (^) o racchiusi tra virgolette quando vengono usati in String (ad esempio, "StringContain&Symbol"). Se si usano le virgolette per racchiudere una stringa contenente uno dei caratteri speciali, le virgolette vengono impostate come parte del valore della variabile di ambiente.

Supporto per file di dati nativi

In SQL Server l'utilità bcp supporta file di dati nativi compatibili con le versioni di SQL Server a partire da SQL Server 2000 (8.x) e versioni successive.

Colonne calcolate e colonne timestamp

I valori nel file di dati da importare per le colonne calcolate o timestamp vengono ignorati e SQL Server assegna automaticamente i valori. Se il file di dati non contiene valori per le colonne calcolate o timestamp nella tabella, utilizzare un file di formato per specificare che le colonne calcolate o timestamp nella tabella devono essere ignorate durante l'importazione dei dati; SQL Server assegna automaticamente i valori per la colonna.

Le colonne calcolate e timestamp vengono copiate in blocco da SQL Server a un file di dati come di consueto.

Definizione di identificatori contenenti spazi o virgolette

SQL Server identificatori possono includere caratteri come spazi incorporati e virgolette. Tali identificatori possono essere utilizzati nei modi seguenti:

  • Quando al prompt dei comandi si specifica un identificatore o un nome di file che include uno spazio o una virgoletta singola, racchiuderlo tra virgolette doppie ("").

    Il comando bcp out seguente, ad esempio, consente di creare un file di dati denominato Currency Types.dat:

    bcp AdventureWorks2012.Sales.Currency out "Currency Types.dat" -T -c  
    
  • Per specificare un nome di database contenente uno spazio o una virgoletta singola, è necessario usare l'opzione -q .

  • Per i nomi di proprietario, di tabella o di vista contenenti spazi incorporati o virgolette singole, è possibile effettuare le operazioni seguenti:

    • Specificare l'opzione -q oppure

    • Racchiudere il nome del proprietario, della tabella o della vista tra parentesi quadre ([]) all'interno di virgolette.

Convalida dei dati

L'utilitàbcp ora esegue la convalida e i controlli dei dati che potrebbero causare la mancata esecuzione degli script quando questi vengono eseguiti su dati non validi inclusi in un file di dati. L'utilità bcp , ad esempio, verifica quanto segue:

  • Validità delle rappresentazioni native dei tipi di dati float o real.

  • Lunghezza in byte pari dei dati Unicode.

Le forme di dati non validi che potrebbero essere importate in blocco nelle versioni precedenti di SQL Server potrebbero non essere caricate ora; mentre, nelle versioni precedenti, l'errore non si verificava fino a quando un client non ha tentato di accedere ai dati non validi. La convalida aggiuntiva riduce il rischio di errori durante l'esecuzione di query sui dati in seguito al caricamento bulk.

Esportazione o importazione bulk di documenti SQLXML

Per l'esportazione o l'importazione bulk di dati SQLXML, utilizzare uno dei tipi di dati seguenti nel file di formato.

Tipo di dati Effetto
SQLCHAR o SQLVARYCHAR I dati vengono inviati nella tabella codici del client o nella tabella codici implicita delle regole di confronto. L'effetto equivale a quello ottenuto specificando l'opzione -c senza definire un file di formato.
SQLNCHAR o SQLNVARCHAR I dati vengono inviati in formato Unicode. L'effetto equivale a quello ottenuto specificando l'opzione -w senza definire un file di formato.
SQLBINARY o SQLVARYBIN I dati vengono inviati senza conversione.

Autorizzazioni

Un'operazione bcp out richiede l'autorizzazione SELECT per la tabella di origine.

Un'operazione bcp in richiede almeno l'autorizzazione SELECT/INSERT per la tabella di destinazione. È inoltre richiesta l'autorizzazione ALTER TABLE se si verifica uno dei casi seguenti:

  • Sono presenti alcuni vincoli e l'hint CHECK_CONSTRAINTS non è specificato.

    Nota

    Per impostazione predefinita, i vincoli sono disabilitati. Per abilitarli in modo esplicito, usare l'opzione -h con l'hint CHECK_CONSTRAINTS.

  • Sono presenti alcuni trigger e l'hint FIRE_TRIGGER non è specificato.

    Nota

    Per impostazione predefinita, i trigger non sono attivati. Per attivarli in modo esplicito, usare l'opzione -h con l'hint FIRE_TRIGGERS.

  • Usare l'opzione -E per importare valori Identity da un file di dati.

Nota

La richiesta di autorizzazione ALTER TABLE per la tabella di destinazione è stata nuova in SQL Server 2005 (9,x). Questo nuovo requisito può causare l'esito negativo degli script di bcp che non consentono l'applicazione di trigger e controlli dei vincoli se l'account utente non dispone delle autorizzazioni ALTER TABLE per la tabella di destinazione.

Procedure consigliate relative alla modalità carattere (-c) e alla modalità nativa (-n)

In questa sezione sono presenti indicazioni relative alla modalità carattere (-c) e alla modalità nativa (-n).

  • (Amministratore/utente) Quando possibile, utilizzare il formato nativo (-n) per evitare i problemi relativi al separatore. Usare il formato nativo per esportare e importare usando SQL Server. Esportare dati da SQL Server usando l'opzione -c o -w se i dati verranno importati in un database non SQL Server.

  • (Amministratore) Verificare i dati in caso di utilizzo di BCP OUT. Ad esempio, quando si utilizza BCP OUT, BCP IN, quindi BCP OUT, verificare che i dati vengano esportati correttamente e che i valori del carattere di terminazione non siano utilizzati in alcuni valori di dati. Considerare di eseguire l'override dei caratteri di terminazione predefiniti (usando le opzioni -t e -r) con valori esadecimali casuali per evitare conflitti tra i valori del carattere di terminazione e i valori dei dati.

  • (Utente) Utilizzare un carattere di terminazione lungo e univoco (qualsiasi sequenza di byte o caratteri) per ridurre la possibilità di un conflitto con il valore stringa effettivo. Questa operazione può essere effettuata utilizzando le opzioni -t e -r.

Esempi

Questa sezione contiene gli esempi seguenti:

R. Identificare la versione dell'utilità bcp

B. Copia delle righe di tabella in un file di dati (con connessione trusted)

C. Copia delle righe di tabella in un file di dati (con autenticazione in modalità mista)

D. Copia di dati da un file a una tabella

E. Copia di una colonna specifica in un file di dati

F. Copia di una riga specifica in un file di dati

G. Copia di dati da una query a un file di dati

H. Creazione dei file di formato

I. Uso di un file di formato per l'importazione bulk con bcp

J. Definizione di una tabella codici

Condizioni di test di esempio

Gli esempi seguenti usano il database di esempio WideWorldImporters per SQL Server (a partire dal 2016) e il database SQL di Azure. WideWorldImporters può essere scaricato da https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0. Per la sintassi da usare per ripristinare il database di esempio, vedere RESTORE (Transact-SQL) . Se non specificato diversamente, si presuppone che l'utente usi l'autenticazione di Windows e abbia una connessione trusted all'istanza del server in cui viene eseguito il comando bcp . Una directory denominata D:\BCP verrà usata nella maggior parte degli esempi.

Lo script seguente crea una copia vuota della tabella WideWorldImporters.Warehouse.StockItemTransactions e quindi aggiunge un vincolo di chiave primaria. Eseguire lo script T-SQL seguente in SQL Server Management Studio (SSMS)

USE WideWorldImporters;  
GO  

SET NOCOUNT ON;

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Warehouse.StockItemTransactions_bcp')
BEGIN
    SELECT * INTO WideWorldImporters.Warehouse.StockItemTransactions_bcp
    FROM WideWorldImporters.Warehouse.StockItemTransactions  
    WHERE 1 = 2;  

    ALTER TABLE Warehouse.StockItemTransactions_bcp 
    ADD CONSTRAINT PK_Warehouse_StockItemTransactions_bcp PRIMARY KEY NONCLUSTERED 
    (StockItemTransactionID ASC);
END

Nota

Troncare la tabella StockItemTransactions_bcp in base alle esigenze.

TRUNCATE TABLE WideWorldImporters.Warehouse.StockItemTransactions_bcp;

R. Identificare la versione dell'utilità bcp

Al prompt dei comandi immettere il comando seguente:

bcp -v

B. Copia delle righe di tabella in un file di dati (con connessione trusted)

Gli esempi seguenti illustrano l'uso dell'opzione out nella tabella WideWorldImporters.Warehouse.StockItemTransactions.

  • Base Questo esempio crea un file di dati denominato StockItemTransactions_character.bcp in cui vengono copiati i dati della tabella usando il formato carattere.

    Al prompt dei comandi immettere il comando seguente:

    bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -T
    
  • Espanso Questo esempio crea un file di dati denominato StockItemTransactions_native.bcp e vi copia i dati della tabella nel formato nativo. L'esempio inoltre: specifica il numero massimo di errori di sintassi, un file di errore e un file di output.

    Al prompt dei comandi immettere il comando seguente:

    bcp WideWorldImporters.Warehouse.StockItemTransactions OUT D:\BCP\StockItemTransactions_native.bcp -m 1 -n -e D:\BCP\Error_out.log -o D:\BCP\Output_out.log -S -T
    

Esaminare Error_out.log e Output_out.log. Error_out.log deve essere vuoto. Confrontare le dimensioni dei file tra StockItemTransactions_character.bcp e StockItemTransactions_native.bcp.

C. Copia delle righe di tabella in un file di dati (con autenticazione in modalità mista)

L'esempio seguente illustra l'uso dell'opzione out nella tabella WideWorldImporters.Warehouse.StockItemTransactions Questo esempio crea un file di dati denominato StockItemTransactions_character.bcp in cui vengono copiati i dati della tabella usando il formato carattere .

Si presuppone che l'utente usi l'autenticazione in modalità mista, quindi l'opzione -U è necessaria per specificare l'ID di accesso. Inoltre, a meno che non ci si connette all'istanza predefinita di SQL Server nel computer locale, usare l'opzione -S per specificare il nome del sistema e, facoltativamente, un nome di istanza.

Al prompt dei comandi immettere il comando seguente: (il sistema richiederà la password).

bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -U<login_id> -S<server_name\instance_name>

D. Copia di dati da un file a una tabella

Gli esempi seguenti illustrano l'opzione in nella tabella WideWorldImporters.Warehouse.StockItemTransactions_bcp tramite i file creati in precedenza.

  • Base Questo esempio usa il file di dati StockItemTransactions_character.bcp creato in precedenza.

    Al prompt dei comandi immettere il comando seguente:

    bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_character.bcp -c -T
    
  • Esteso Questo esempio usa il file di dati StockItemTransactions_native.bcp creato in precedenza. L'esempio inoltre: usa l'hint TABLOCK, specifica la dimensione del batch, il numero massimo di errori di sintassi, un file di errore e un file di output.

Al prompt dei comandi immettere il comando seguente:

bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_native.bcp -b 5000 -h "TABLOCK" -m 1 -n -e D:\BCP\Error_in.log -o D:\BCP\Output_in.log -S -T

Esaminare Error_in.log e Output_in.log.

E. Copia di una colonna specifica in un file di dati

Per copiare una colonna specifica, è possibile usare l'opzione queryout . Nell'esempio seguente viene copiata in un file di dati solo la colonna StockItemTransactionID della tabella Warehouse.StockItemTransactions .

Al prompt dei comandi immettere il comando seguente:

bcp "SELECT StockItemTransactionID FROM WideWorldImporters.Warehouse.StockItemTransactions WITH (NOLOCK)" queryout D:\BCP\StockItemTransactionID_c.bcp -c -T

F. Copia di una riga specifica in un file di dati

Per copiare una riga specifica, è possibile usare l'opzione queryout . Nell'esempio seguente solo la riga dell'utente denominato Amy Trefl viene copiata dalla tabella WideWorldImporters.Application.People in un file di dati Amy_Trefl_c.bcp. Nota: l'opzione -d viene usata per identificare il database.

Al prompt dei comandi immettere il comando seguente:

bcp "SELECT * from Application.People WHERE FullName = 'Amy Trefl'" queryout D:\BCP\Amy_Trefl_c.bcp -d WideWorldImporters -c -T

G. Copia di dati da una query a un file di dati

Per copiare il set di risultati da un'istruzione Transact-SQL a un file di dati, usare l'opzione queryout . Nell'esempio seguente vengono copiati i nomi dalla tabella WideWorldImporters.Application.People nel file di dati People.txt , ordinandoli in base al nome completo. Nota: l'opzione -t viene usata per creare un file delimitato da virgole.

Al prompt dei comandi immettere il comando seguente:

bcp "SELECT FullName, PreferredName FROM WideWorldImporters.Application.People ORDER BY FullName" queryout D:\BCP\People.txt -t, -c -T

H. Creazione dei file di formato

Nell'esempio seguente vengono creati tre diversi file di formato per la tabella Warehouse.StockItemTransactions nel database WideWorldImporters . Esaminare il contenuto di ogni file creato.

Al prompt dei comandi immettere i comandi seguenti:

REM non-XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_c.fmt -c -T 

REM non-XML native format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_n.fmt -n -T

REM XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_c.xml -x -c -T

Nota

Per usare l'opzione -x , è necessario avere un client bcp 9.0. Per informazioni sull'uso del client bcp 9.0, vedere la sezione "Osservazioni".

Per altre informazioni, vedere File di formato non XML (SQL Server) e file di formato XML (SQL Server).For more information, see Non-XML Format Files (SQL Server) and XML Format Files (SQL Server).

I. Utilizzo di un file di formato per l'importazione bulk con bcp

Per usare un file di formato creato in precedenza durante l'importazione di dati in un'istanza di SQL Server, usare l'opzione -f con l'opzione in . Il comando seguente, ad esempio, consente di eseguire la copia bulk del contenuto di un file di dati, StockItemTransactions_character.bcp, in una copia della tabella Warehouse.StockItemTransactions_bcp usando il file di formato creato in precedenza, StockItemTransactions_c.xml. Nota: l'opzione -L viene usata per importare solo i primi 100 record.

Al prompt dei comandi immettere il comando seguente:

bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp in D:\BCP\StockItemTransactions_character.bcp -L 100 -f D:\BCP\StockItemTransactions_c.xml -T

Nota

I file di formato risultano particolarmente utili quando i campi dei file di dati sono diversi dalle colonne della tabella, ad esempio per numero, ordine o tipi di dati. Per altre informazioni, vedere File di formato per l'importazione o l'esportazione di dati (SQL Server).For more information, see Format files for Importing or Export Data (SQL Server).

J. Definizione di una tabella codici

Il codice parziale riportato di seguito rappresenta l'importazione bcp quando si specifica una tabella codici 65001:

bcp.exe MyTable in "D:\data.csv" -T -c -C 65001 -t , ...  

Esempi aggiuntivi

Gli argomenti seguenti contengono esempi relativi all'uso di bcp:
Formati di dati per l'importazione o l'esportazione bulk (SQL Server)
 ● Usare il formato nativo per importare o esportare dati (SQL Server)
 ● Usa il formato carattere per importare o esportare dati (SQL Server)
 ● Usare il formato nativo Unicode per importare o esportare dati (SQL Server)
 ● Usa il formato carattere Unicode per importare o esportare dati (SQL Server)

Impostazione dei caratteri di terminazione del campo e della riga (SQL Server)

Mantenimento dei valori Null o utilizzo dei valori predefiniti durante un'importazione bulk (SQL Server)

Mantenere i valori Identity durante l'importazione bulk dei dati (SQL Server)

File di formato per l'importazione o l'esportazione di dati (SQL Server)
 ● Creare un file di formato (SQL Server)
 ● Usare un file di formato per l'importazione bulk dei dati (SQL Server)
 ● Usare un file di formato per ignorare una colonna di tabella (SQL Server)
 ● Usare un file di formato per ignorare un campo dati (SQL Server)
 ● Usare un file di formato per eseguire il mapping delle colonne di tabella ai campi di Data-File (SQL Server)

Esempi di importazione ed esportazione bulk di documenti XML (SQL Server)

Considerazioni e limiti

  • L'utilità bcp presenta una limitazione per cui il messaggio di errore visualizza solo 512 byte di caratteri. Vengono visualizzati solo i primi 512 byte del messaggio di errore.

Passaggi successivi

Ottenere aiuto