Connessione con bcp
L'utilità bcp è disponibile con Microsoft ODBC Driver for SQL Server su Linux e macOS. In questa pagina sono documentate le differenze rispetto alla versione di dcp per Windows.
Il carattere di terminazione del campo è tabulazione ("\t").
Il carattere di terminazione della riga è nuova riga ("\n").
La modalità carattere è il formato preferito per i file di formato
bcp
e i file di dati che non contengono caratteri estesi.
Nota
Una barra rovesciata '\' in un argomento della riga di comando deve essere racchiusa tra virgolette o preceduta da un carattere di escape. Per specificare un carattere di nuova riga come carattere di terminazione della riga personalizzato, ad esempio, è necessario usare uno dei meccanismi seguenti:
- -r\\n
- -r "\n"
- -r '\n'
Di seguito è riportato un esempio di chiamata di un comando bcp
per copiare le righe di una tabella in un file di testo:
bcp AdventureWorks2008R2.Person.Address out test.dat -Usa -Pxxxx -Sxxx.xxx.xxx.xxx
Opzioni disponibili
Nella versione corrente sono disponibili le opzioni e la sintassi seguenti:
[database.]schema.tabella in file_dati | out file_dati
-a packet_size
Specifica il numero di byte inviati al e dal server per ogni pacchetto di rete.
-b dimensione_batch
Specifica il numero di righe per ogni batch di dati importati.
-c
Usa dati di tipo carattere.
-d database_name
Specifica il database al quale connettersi.
-D
Indica che il valore passato all'opzione -S di bcp
deve essere interpretato come nome dell'origine dati (DSN). Per altre informazioni, vedere "Supporto di DSN in sqlcmd e bcp" in Connessione con sqlcmd.
-e file_errori
Specifica il percorso completo di un file di errori utilizzato per archiviare le eventuali righe che l'utilità bcp
non è in grado di trasferire dal file al database.
-E
Usa i valori Identity per la colonna Identity nel file di dati importato.
-f file_formato
Specifica il percorso completo di un file di formato.
-F prima_riga
Specifica il numero della prima riga da esportare da una tabella o da importare da un file di dati.
-G
Questa opzione viene usata dal client durante la connessione al database SQL di Azure, all’istanza gestita di SQL di Azur o ad Azure Synapse Analytics per specificare che l'utente deve essere autenticato con Microsoft Entra ID (in precedenza, Azure Active Directory). Può essere combinato con solo l'opzione -P per usare l'autenticazione del token di accesso (v17.8+). L'opzione -G richiede almeno bcp versione 17.6. Per determinare la versione, eseguire bcp-v.
Importante
L’opzione -G
si applica al database SQL di Azure, all’istanza gestita di SQL di Azure e a Azure Synapse Analytics.
L'autenticazione integrata di Microsoft Entra non è attualmente supportata in Linux o macOS. Per l'autenticazione integrata di Microsoft Entra sono necessari il driver Microsoft ODBC 17 per SQL Server versione 17.6.1 successiva e un ambiente Kerberos configurato correttamente.
-k
Specifica che durante l'operazione il valore delle colonne vuote deve rimanere Null, ovvero che non verranno inseriti valori predefiniti in tali colonne.
-l
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 specificato non è numerico o non è compreso in tale intervallo, bcp
genera un messaggio di errore. Il valore 0 specifica un timeout infinito.
-L ultima_riga
Specifica il numero dell'ultima riga da esportare da una tabella o da importare da un file di dati.
-m max_errori
Specifica il numero massimo di errori di sintassi che possono verificarsi prima dell'annullamento dell'operazione bcp
.
-n
Esegue l'operazione di copia bulk usando i tipi di dati nativi del database.
-P password
Specifica la password per l'ID di accesso . Se usato con l'opzione -G senza -U, specifica un file che contiene un token di accesso (versione 17.8 e successive). Il file del token deve essere in formato UTF-16LE (senza BOM).
I token di accesso si possono ottenere in vari modi. È importante assicurarsi che il token di accesso sia corretto byte per byte, perché verrà inviato così com'è. Di seguito è riportato un comando di esempio che ottiene un token di accesso. Il comando usa i comandi dell'interfaccia della riga di comando di Azure e Linux e lo salva in un file nel formato corretto. Se la codifica predefinita del sistema o del terminale non è ASCII o UTF-8, potrebbe essere necessario modificare le opzioni iconv
. Assicurarsi di proteggere attentamente il file risultante ed eliminarlo quando non è più necessario.
az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile
-q
Esegue l'istruzione SET QUOTED_IDENTIFIER ON durante la connessione tra l'utilità bcp
e un'istanza di SQL Server.
-r terminatore_riga
Specifica il carattere di terminazione della riga.
-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.
-S server
Specifica il nome dell'istanza di SQL Server a cui connettersi oppure, se si usa -D, un DSN.
-t terminatore_campo
Specifica il carattere di terminazione del campo.
-T
Specifica che l'utilità bcp
si connette a SQL Server tramite una connessione trusted (sicurezza integrata).
-u
Considera attendibile il certificato del server. (disponibile da bcp
versione 18)
-U login_id
Specifica l'ID di accesso usato per connettersi a SQL Server.
-v
Visualizza numero di versione e informazioni sul copyright per l'utilità bcp
.
-w
Esegue l'operazione di copia bulk usando caratteri Unicode.
In questa versione sono supportati i caratteri Latin 1 e UTF-16.
-Y[s|m|o]
Specifica la modalità di crittografia della connessione. Le opzioni sono Strict, Mandatory e Optional. Se si usa -Y senza parametri, viene usata la modalità di crittografia Mandatory ed è equivalente a -Ym. (disponibile da bcp
versione 18)
Opzioni non disponibili
Nella versione corrente non sono disponibili le opzioni e la sintassi seguenti:
-C
Specifica la tabella codici dei dati contenuti nel file di dati.
-h hint
Specifica gli hint usati per l'importazione bulk di dati in una tabella o in una vista.
-i input_file
Specifica il nome di un file di risposta.
-N
Usa i tipi di dati nativi del database per i dati non di tipo carattere e i caratteri Unicode per i dati di tipo carattere.
-o output_file
Specifica il nome di un file in cui viene reindirizzato l'output dal prompt dei comandi.
-V (80 | 90 | 100)
Consente di usare tipi di dati di una versione precedente di SQL Server.
-x
Se usato con le opzioni format e -f format_file, genera un file di formato basato su XML anziché un file di formato predefinito non XML.