utilità bcp

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di sistemi analitici (PDW)

L'utilità del programma di copia bulk (bcp) esegue operazioni di copia bulk di dati tra un'istanza di Microsoft SQL Server e un file di dati in un formato specificato dall'utente.

Nota

Per l'uso di bcp in Linux, vedere Installare gli strumenti da riga di comando di SQL Server sqlcmd e bcp in Linux.

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

L'utilità bcp può essere usata per importare un numero elevato di nuove righe nelle tabelle di SQL Server o per esportare dati dalle tabelle in file di dati. Tranne quando viene usato 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.

Per le convenzioni di sintassi usate per la sintassi bcp , vedere Convenzioni di sintassi 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 bcp non includono informazioni sullo schema o sul formato, quindi se una tabella o una vista viene eliminata e non si dispone di un file di formato, potrebbe non essere possibile importare i dati.

Nota

Microsoft Entra ID era precedentemente noto come Azure Active Directory (Azure AD).

Scaricare la versione più recente dell'utilità bcp

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

Finestre

Linux e macOS

Vedere Installare gli strumenti da riga di comando di SQL Server sqlcmd e bcp in Linux per istruzioni sull'installazione di sqlcmd e bcp in Linux e macOS.

Informazioni sulla versione

  • Numero di versione: 15.0.4298.1
  • Numero di build: 15.0.4298.1
  • Data di rilascio: 7 aprile 2023

La nuova versione di sqlcmd supporta l'autenticazione Di Microsoft Entra, tra cui il supporto dell'autenticazione a più fattori (MFA) per database SQL di Azure, Azure Synapse Analytics e le funzionalità Always Encrypted.

Il nuovo bcp supporta l'autenticazione Di Microsoft Entra, incluso il supporto dell'autenticazione a più fattori (MFA) per database SQL di Azure e Azure Synapse Analytics.

Requisiti di sistema

  • Windows 8, Windows 8.1, Windows 10, Windows 11

  • Windows Server 2016, Windows Server 2019, Windows Server 2022

Questo componente richiede la versione più recente di Microsoft ODBC Driver 17 per SQL Server.

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

Nota

sqlcmd e bcp sono disponibili anche in Linux. Per altre informazioni, vedere Installare gli strumenti da riga di comando di SQL Server sqlcmd e bcp in Linux.

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 | 140 | 150 | 160 ) ]
    [-w]
    [-x]

Opzioni della riga di comando

database_name

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

È inoltre possibile specificare in modo esplicito il nome del database tramite -d.

schema

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

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 vista di destinazione durante la copia dei dati in SQL Server (in) e la vista origine durante la copia di 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 di dati nelle viste, vedere INSERT (Transact-SQL).

"query"

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. queryout è necessario specificare anche quando si copiano in blocco dati da una query.

La query può fare riferimento a una stored procedure purché tutte le tabelle a cui si fa riferimento all'interno della stored procedure esistano prima di eseguire l'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.

in

copia da un file nella tabella o nella vista del database. Specifica la direzione della copia bulk.

out

Copia dalla tabella o dalla vista del database in un file. Specifica la direzione della copia bulk.

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.

data_file

Percorso completo del file di dati. Quando si esegue un'importazione bulk dei dati in SQL Server, il file di dati include i dati da copiare nella tabella o nella vista specificata. Quando si esegue un'esportazione bulk dei dati da SQL Server, il file di dati include 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.

Queryout

Le copie da una query e devono essere specificate solo quando si copiano in blocco dati da una query.

format

Crea un file di formato in base all'opzione specificata (-n, -c, -wo -N) e ai delimitatori di tabella o 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 richiede l'opzione . La format creazione di un file di formato XML richiede anche l'opzione -x .-f Per altre informazioni, vedere Creare un file di formato (SQL Server). È necessario specificare nul come valore (format nul).

-a packet_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 sp_configure sistema). Questa opzione, tuttavia, ha la precedenza sull'opzione di configurazione del server. packet_size può essere compreso tra 4096 byte e 65.535 byte. Il valore predefinito è 4096.

Le prestazioni delle operazioni di copia bulk migliorano con l'aumentare delle dimensioni del pacchetto. Se viene richiesto un pacchetto di dimensioni maggiori, ma non è possibile concedere, viene usato il valore predefinito. Le statistiche sulle prestazioni generate dall'utilità bcp indicano le dimensioni del pacchetto in uso.

-b batch_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 con l'opzione -h "ROWS_PER_BATCH=<bb>" .

-c

Esegue l'operazione utilizzando un tipo di dati carattere. Questa opzione non richiede ogni campo; usa char come tipo di archiviazione, senza prefissi e con \t (carattere di tabulazione) come separatore di campo e \r\n (carattere di nuova riga) 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).

-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. Questa è la tabella codici predefinita usata se -C non è specificata.
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 a partire dalla 13 possono importare la codifica UTF-8 per le versioni precedenti di SQL Server.

-d database_name

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

-D

Fa in modo che il valore passato all'opzione bcp-S venga interpretato come nome dell'origine dati (DSN). Un DSN può essere usato per incorporare le opzioni del driver per semplificare le righe di comando, applicare le opzioni del driver che non sono altrimenti accessibili dalla riga di comando, ad esempio MultiSubnetFailover, o per proteggere le credenziali sensibili dall'essere individuabili come argomenti della riga di comando. Per altre informazioni, vedere Supporto di DSN in sqlcmd e bcp in Connessione con sqlcmd.

-e err_file

Specifica il percorso completo di un file di errore usato per archiviare tutte le righe che l'utilità bcp non può trasferire dal file al database. I messaggi di errore generati dal comando bcp vengono inviati alla workstation dell'utente. Se questa opzione non viene usata, non viene creato un file di errore.

Se err_file inizia con un trattino () 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, usare 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 ha un requisito di autorizzazioni speciale. Per altre informazioni, vedere "Osservazioni" più avanti in questo articolo.

-f format_file

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

  • Se -f viene usato con l'opzione format , viene creato il format_file specificato per la tabella o la vista specificata. Per creare un file di formato XML, specificare anche l'opzione -x . Per altre informazioni, vedere Creare un file di formato (SQL Server).

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

    Nota

    L'uso di un file di formato in con l'opzione in o out è facoltativo. In assenza dell'opzione -f , se -n, -c, -wo -N non è specificato, il comando richiede informazioni sul formato e consente di salvare le risposte in un file di formato (il cui nome file predefinito è bcp.fmt).

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

-F first_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 (=) 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. -F first_row è basato su 1.

-G

Si applica solo a: database SQL di Azure e Azure Synapse Analytics.

Questa opzione viene usata dal client durante la connessione a database SQL di Azure o Azure Synapse Analytics per specificare che l'utente deve essere autenticato con l'ID Microsoft Entra. L'opzione -G richiede la versione 14.0.3008.27 o versioni successive. Per determinare la versione, eseguire bcp -v. Per altre informazioni, vedere Usare l'autenticazione di Microsoft Entra con database SQL o Azure Synapse Analytics.

Importante

L'autenticazione integrata di Microsoft Entra non è attualmente supportata in Linux o macOS. L'autenticazione integrata di Microsoft Entra richiede Microsoft ODBC Driver 17 per SQL Server versione 17.6.1 e versioni successive e un ambiente Kerberos configurato correttamente.

Suggerimento

Per verificare se la versione di bcp include il supporto per l'autenticazione di Microsoft Entra, digitare bcp --help e verificare che venga visualizzato -G nell'elenco degli argomenti disponibili.

  • Nome utente e password di Microsoft Entra

    Quando si desidera usare un nome utente e una password di Microsoft Entra, è possibile fornire l'opzione -G e usare anche il nome utente e la password fornendo le -U opzioni e -P .

    L'esempio seguente esporta i dati usando il nome utente e le credenziali della password di Microsoft Entra. 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 le credenziali di un utente di Microsoft Entra. L'esempio importa i dati dal file c:\last\data1.dat nella tabella bcptest per il database testdb nel server aadserver.database.windows.net di Azure usando un nome utente e una password di Microsoft Entra:

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

    Per l'autenticazione integrata di Microsoft Entra, fornire l'opzione -G senza nome utente o password. Questa configurazione richiede che l'account utente di Windows corrente (l'account in cui è in esecuzione il comando bcp ) sia federato con Microsoft Entra ID:

    L'esempio seguente esporta i dati usando l'autenticazione integrata di Microsoft Entra. L'esempio esporta la tabella bcptest dal database testdb nel server aadserver.database.windows.net logico e archivia i dati nel file c:\last\data2.dat, usando le credenziali di Windows federate con l'ID Microsoft Entra:

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

    L'esempio seguente importa i dati usando l'autenticazione integrata di Microsoft Entra. L'esempio importa i dati dalla tabella file nella tabella c:\last\data2.datbcptest nel database testdb nel server aadserver.database.windows.netlogico , usando le credenziali di Windows federate con Microsoft Entra ID:

    bcp bcptest in "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c -t
    
  • Microsoft Entra interactive

    L'autenticazione interattiva Di Microsoft Entra, disponibile per tutti gli oggetti SQL di Azure e SQL Server 2022+, consente di usare una finestra di dialogo interattiva per l'autenticazione, che supporta anche l'autenticazione a più fattori.

    L'autenticazione interattiva di Microsoft Entra richiede bcpversione 15.0.1000.34 o successiva, nonché ODBC versione 17.2 o successiva.

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

    L'esempio seguente esporta i dati usando l'autenticazione interattiva di Microsoft Entra, che include la specifica del nome utente di un account Microsoft Entra.

    La modalità interattiva richiede l'immissione manuale di una password o per gli account con autenticazione a più fattori abilitata, completare il metodo di autenticazione MFA configurato.

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

    Se si usa un utente di Microsoft Entra che è un account di Windows da un dominio federato, il nome utente immesso nella riga di comando deve contenere il dominio , ad esempio joe@contoso.com:

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

    Se gli utenti guest sono presenti in un tenant specifico di Microsoft Entra e fanno parte di un gruppo presente in database SQL che dispone delle autorizzazioni di database per eseguire il comando bcp, viene usato il relativo alias utente guest (ad esempio, keith0@adventure-works.com).

-h "hints [, ... n]"

Specifica gli hint da utilizzare per l'importazione bulk di dati in una tabella o in una vista.

  • ORDER (colonna [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 un ordine diverso, diverso dall'ordine di una chiave di indice cluster o se non è presente alcun indice cluster nella tabella, 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 garantire l'ottimizzazione dell'importazione bulk, SQL Server verifica inoltre che i dati importati siano ordinati.

  • ROWS_PER_BATCH = bb

    Numero di righe di dati per batch (come bb). Usato quando -b non viene specificato, con conseguente invio dell'intero file di dati 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 ne carica i dati. Per informazioni dettagliate, vedere gli articoli concettuali sugli indici 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.

    A un certo punto, è necessario controllare i vincoli per l'intera tabella. Se la tabella non è stata annullata prima dell'operazione di importazione bulk, il costo della riconvalida del vincolo può superare il costo di 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

    bcp applica ora la convalida dei dati e i controlli dei dati che possono causare l'esito negativo degli script se vengono eseguiti su dati non validi in un file di dati.

    Nota

    L'opzione -mmax_errors non si applica al controllo dei vincoli.

  • FIRE_TRIGGERS

    Specificato con l'argomento in , tutti i trigger di inserimento definiti nella tabella di destinazione verranno eseguiti durante l'operazione di copia bulk. Se FIRE_TRIGGERS non viene specificato, non verranno eseguiti trigger di inserimento. FIRE_TRIGGERS viene ignorato per gli outargomenti , queryoute format .

-i input_file

Specifica il nome di un file di risposta contenente le risposte alle domande del prompt dei comandi per ogni campo dati quando viene eseguita una copia bulk tramite la modalità interattiva (-n, -c, -wo -N non specificato).

Se input_file inizia con un trattino () 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 predefiniti durante l'importazione bulk (SQL Server).For more information, see Keep nulls or default values during bulk import (SQL Server).

-K application_intent

Dichiara il tipo di carico di lavoro dell'applicazione in caso di connessione a un server. L'unico valore consentito è ReadOnly. Se -K non viene specificato, l'utilità bcp non supporta la connettività a una replica secondaria in un gruppo di disponibilità AlwaysOn. Per altre informazioni, vedere Offload del carico di lavoro di sola lettura nella replica secondaria di un gruppo di disponibilità Always On.

-l login_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 di a SQL Server quando si cerca di stabilire la connessione a un server. Il timeout di accesso predefinito è di 15 secondi. Il valore del timeout deve essere un numero compreso tra 0 e 65534. Se il valore fornito non è numerico o non rientra in tale intervallo, bcp genera un messaggio di errore. Il valore 0 specifica un timeout infinito.

-L last_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.

-m max_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 viene conteggiata come un errore. Se questa opzione non è inclusa, il valore predefinito è 10.

Nota

L'opzione -m non si applica anche alla conversione dei tipi di dati money o Bigint .

-n

Esegue l'operazione di copia bulk utilizzando i tipi di dati nativi del database. Questa opzione non richiede ogni campo; usa i valori nativi.

Per altre informazioni, vedere Usare il formato nativo per importare o esportare dati (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 richiede ogni campo. Usare questa opzione quando si trasferiscono dati che contengono caratteri estesi ANSI e si vuole sfruttare le prestazioni della modalità nativa.

Per altre informazioni, vedere Usare il formato Unicode nativo per importare o esportare dati (SQL Server).

Se si esportano e quindi si importano dati nello stesso schema di tabella usando bcp con -N, è possibile che venga visualizzato un avviso di troncamento se è presente una colonna di caratteri non Unicode a lunghezza fissa, ad esempio char(10)).

L'avviso può essere ignorato. Un modo per risolvere questo avviso consiste nell'usare -n anziché -N.

-o output_file

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

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

-P password

Specifica la password per l'ID di accesso. Se questa opzione non viene usata, 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 mascherare la password, non specificare l'opzione -P insieme all'opzione -U . Al contrario, dopo aver specificato bcp insieme all'opzione -U e ad altre opzioni (non specificare -P), premere INVIO e il comando richiederà una password. Questo metodo garantisce che la password venga mascherata quando viene immessa.

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

-q

Esegue l'istruzione SET QUOTED_IDENTIFIERS ON durante la 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 utilizzare l'opzione -q .

-q non si applica ai valori passati a -d.

Per altre informazioni, vedere Osservazioni più avanti in questo articolo.

-r row_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 terminatore di riga nella notazione esadecimale in un comando bcp , il valore viene troncato in 0x00. Ad esempio, se si specifica 0x410041, 0x41 viene usato .

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

-R

Specifica che la copia bulk dei dati relativi a valuta, data e ora verrà eseguita in SQL Server usando il formato definito per le impostazioni locali del computer client. Per impostazione predefinita, le impostazioni internazionali vengono ignorate.

-S server_name [\instance_name]

Specifica l'istanza di SQL Server alla quale connettersi. Se non si specifica alcun server, l'utilità bcp si connette all'istanza predefinita di SQL Server del 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.

-t field_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 nella notazione esadecimale in un comando bcp , il valore viene troncato in 0x00. Ad esempio, se si specifica 0x410041, 0x41 viene usato .

Se field_term inizia con un trattino () 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 trusted che usa la sicurezza integrata. Le credenziali di sicurezza dell'utente di rete, delle login_id e della password non sono necessarie. Se -T non è specificato, è necessario specificare -U e -P accedere correttamente.

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 a database SQL o Azure Synapse Analytics, l'uso di autenticazione di Windows o l'autenticazione di Microsoft Entra non è supportata. Usare le -U opzioni e -P .

-U login_id

Specifica l'ID di accesso usato per connettersi a SQL Server.

-v

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

-V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160)

Esegue l'operazione di copia bulk utilizzando i tipi di dati di una versione precedente di SQL Server. Questa opzione non richiede ogni campo; usa i valori predefiniti.

80 = SQL Server 2000 (8.x)

90 = SQL Server 2005 (9.x)

100 = SQL Server 2008 (10.0.x) e SQL Server 2008 R2 (10.50.x)

110 = SQL Server 2012 (11.x)

120 = SQL Server 2014 (12.x)

130 = SQL Server 2016 (13.x)

140 = SQL Server 2017 (14.x)

150 = SQL Server 2019 (15.x)

160 = SQL Server 2022 (16.x)

Per generare, ad esempio, dati per tipi non supportati da SQL Server 2000 (8.x), ma introdotti in 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 richiede ogni campo; usa nchar come tipo di archiviazione, nessun prefisso, \t (carattere di tabulazione) come separatore di campo e \n (carattere di nuova riga) come carattere di terminazione della riga. -w non è compatibile con -c.

Per altre informazioni, vedere Usare il formato carattere Unicode per importare o esportare dati (SQL Server).

-x

Questa opzione viene utilizzata con le format opzioni e -fformat_file e genera un file di formato basato su XML anziché il file di formato non XML predefinito. Non -x funziona durante l'importazione o l'esportazione di dati. Genera un errore se usato senza e format-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, in base ai valori della variabile di ambiente PATH è possibile che venga usato 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 individuare la versione in uso, eseguire il bcp -v comando 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 la versione più recente dell'utilità bcp sia in esecuzione, è necessario rimuovere le versioni precedenti dell'utilità bcp .

    Per determinare dove sono installate tutte le versioni dell'utilità bcp , digitare nel prompt dei comandi:

    where bcp.exe
    
  • L'utilità bcp può anche essere scaricata separatamente dal Feature Pack di Microsoft SQL Server 2016. 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 di sintassi delle utilità del prompt dei comandi, vedere Utilità del prompt dei comandi SQL (motore di database).)

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

  • Per informazioni sulla registrazione delle operazioni di inserimento di righe eseguite dall'importazione bulk nel log delle transazioni, vedere Prerequisiti per la registrazione minima nell'importazione bulk.

  • Uso di caratteri speciali aggiuntivi

    I caratteri <, >, |&, e ^ 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, "StringContaining&Symbol"). Se si utilizzano le virgolette per racchiudere una stringa che contiene uno dei caratteri speciali, le virgolette sono impostate come parte del valore della variabile di ambiente.

Supporto di 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 per le colonne calcolate o timestamp nel file di dati importato vengono ignorati e SQL Server assegna automaticamente nuovi valori. Se il file di dati non contiene valori per le colonne calcolate o timestamp nella tabella, usare 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 copie bulk di colonne calcolate e timestamp da SQL Server a un file di dati vengono eseguite con le modalità consuete.

Specificare gli identificatori che contengono spazi o virgolette

Gli identificatori di SQL Server 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 AdventureWorks2022.Sales.Currency out "Currency Types.dat" -T -c
    
  • Per specificare un nome di database contenente uno spazio o una virgoletta singola, utilizzare 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 proprietario, tabella o vista tra parentesi quadre ([]) tra virgolette.

Convalida dei dati

bcp applica ora la convalida dei dati e i controlli dei dati che possono causare l'esito negativo degli script se vengono eseguiti su dati non validi 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.

I moduli di dati non validi che potrebbero essere importati in blocco nelle versioni precedenti di SQL Server possono non essere caricati ora; mentre, nelle versioni precedenti, l'errore non si è verificato finché 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 edizione Standard LECT per la tabella di origine.

Un'operazione bcp in richiede in modo minimo edizione Standard LECT/IN edizione Standard RT per la tabella di destinazione. Inoltre, l'autorizzazione ALTER TABLE è necessaria se si verifica una delle condizioni seguenti:

  • Esistono vincoli e l'hint CHECK_CONSTRAINTS non è specificato.

    Nota

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

  • I trigger esistono e l'hint FIRE_TRIGGER non è specificato.

    Nota

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

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

Nota

Il requisito relativo all'autorizzazione ALTER TABLE per la tabella di destinazione è una caratteristica introdotta in SQL Server 2005 (9.x). Questo nuovo requisito può causare l'esito negativo degli script bcp che non applicano trigger e controlli dei vincoli se l'account utente non dispone delle autorizzazioni ALTER table per la tabella di destinazione.

Procedure consigliate per la modalità carattere (-c) e la modalità nativa (-n)

Questa sezione include raccomandazioni per la modalità carattere (-c) e la modalità nativa (-n).

  • (Amministrazione istrator/Utente) Quando possibile, usare il formato nativo (-n) per evitare il problema del separatore. Utilizzare il formato nativo per esportare e importare tramite 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 usa BCP OUT, BCP IN e quindi BCP OUT verificare che i dati vengano esportati correttamente e che i valori del terminatore non vengano usati come parte di un valore 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

Gli esempi in questa sezione usano il WideWorldImporters database di esempio per SQL Server 2016 (13.x) e versioni successive, database SQL di Azure e Istanza gestita di 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) .

Condizioni di test di esempio

Se non specificato diversamente, gli esempi presuppongono che si usi l'autenticazione di Windows e che si disponga di una connessione attendibile all'istanza del server in cui si esegue il comando bcp . In molti degli esempi viene usata una directory denominata D:\BCP .

Lo script seguente crea una copia vuota della WideWorldImporters.Warehouse.StockItemTransactions tabella 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. Copiare righe di tabella in un file di dati (con una connessione attendibile)

Negli esempi seguenti viene illustrata l'opzione out nella WideWorldImporters.Warehouse.StockItemTransactions tabella .

  • 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
    
  • Esteso

    Questo esempio crea un file di dati denominato StockItemTransactions_native.bcp in cui vengono copiati i dati della tabella usando il 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. Copiare righe di tabella in un file di dati (con autenticazione in modalità mista)

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

Nell'esempio si presuppone che si usi l'autenticazione in modalità mista ed è necessario usare l'opzione per specificare l'ID -U di accesso. Inoltre, a meno che non ci si connetta all'istanza predefinita di SQL Server nel computer locale, usare l'opzione -S per specificare il nome di sistema e, facoltativamente, un nome di istanza.

Al prompt dei comandi immettere il comando seguente: (il sistema richiede la password.

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

D. Copiare dati da un file a una tabella

Negli esempi seguenti viene illustrata l'opzione in nella WideWorldImporters.Warehouse.StockItemTransactions_bcp tabella usando 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. Nell'esempio viene inoltre usato l'hint TABLOCK, specifica le dimensioni 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. Copiare 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. Copiare 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. Copiare 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. Creare 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 usare un client bcp 9.0. Per informazioni sull'uso del client bcp 9.0, vedere la sezione "Osservazioni".

Per altre informazioni, vedere Usare file di formato non XML (SQL Server) e file di formato XML (SQL Server).

I. Usare 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 Formattare i file per importare o esportare dati (SQL Server).

J. Definire una tabella codici

L'esempio di codice parziale seguente mostra l'importazione di bcp durante la specifica di una tabella codici 65001:

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

K. File di output di esempio che usa un campo personalizzato e i caratteri di terminazione di riga

Questo esempio mostra due file di esempio, generati da bcp usando caratteri di terminazione di campo e riga personalizzati.

  1. Creare una tabella dbo.T1 nel database con due colonne e IDName.tempdb

    USE tempdb;
    GO
    
    CREATE TABLE dbo.T1 (ID INT, [Name] NVARCHAR(20));
    GO
    
    INSERT INTO dbo.T1 VALUES (1, N'Natalia');
    INSERT INTO dbo.T1 VALUES (2, N'Mark');
    INSERT INTO dbo.T1 VALUES (3, N'Randolph');
    GO
    
  2. Generare un file di output dalla tabella di esempio dbo.T1usando un carattere di terminazione del campo personalizzato.

    In questo esempio il nome del server è MYSERVERe il carattere di terminazione del campo personalizzato viene specificato da -t ,.

    bcp dbo.T1 out T1.txt -T -S MYSERVER -d tempdb -w -t ,
    

    Questo è il set di risultati.

    1,Natalia
    2,Mark
    3,Randolph
    
  3. Generare un file di output dalla tabella di esempio dbo.T1usando un terminatore di campo personalizzato e un terminatore di riga personalizzato.

    In questo esempio il nome del server è MYSERVER, il carattere di terminazione del campo personalizzato viene specificato da -t ,e il terminatore di riga personalizzato viene specificato da -r :.

    bcp dbo.T1 out T1.txt -T -S MYSERVER -d tempdb -w -t , -r :
    

    Questo è il set di risultati.

    1,Natalia:2,Mark:3,Randolph:
    

    Nota

    Il terminatore di riga viene sempre aggiunto, anche all'ultimo record. Il carattere di terminazione del campo, tuttavia, non viene aggiunto all'ultimo campo.

Esempi aggiuntivi

Gli articoli seguenti contengono esempi di uso di bcp:

Considerazioni e limitazioni

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

Ottenere aiuto

Contribuire alla documentazione di SQL

Il contenuto SQL può essere modificato. L'autore delle modifiche contribuirà a migliorare la documentazione e verrà accreditato come collaboratore alla realizzazione della pagina.

Per altre informazioni, vedere Come contribuire alla documentazione di SQL Server