Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Il tipo di archiviazione di file indica la modalità con la quale vengono archiviati i dati in un file. I dati possono essere esportati in un file usando il tipo di dati della tabella del database in cui si trovano (formato nativo), come caratteri (formato carattere) oppure usando qualsiasi tipo di dati nel caso in cui sia supportata la conversione implicita. È possibile ad esempio copiare il tipo smallint come int. I tipi di dati definiti dall'utente vengono esportati utilizzando il tipo di dati di base corrispondente.
La richiesta bcp per il tipo di archiviazione dei file
Se un comando interattivo bcp contiene l'opzione in o out senza l'opzione del file di formato (-f) o un'opzione di formato dati (-n, -c, -w, o -N), il comando chiede di specificare il tipo di archiviazione file per ogni campo di dati, come indicato di seguito:
Enter the file storage type of field <field_name> [<default>]:
La risposta dell'utente a questa richiesta dipende dall'operazione eseguita, come illustrato di seguito:
Per esportare i dati in blocco da un'istanza di Microsoft SQL Server a un file di dati nel formato di archiviazione più compatto possibile (formato nativo), accettare i tipi di archiviazione di file predefiniti visualizzati dall'utilità bcp. Per un elenco dei tipi di archiviazione di file nativi, vedere "Tipi di archiviazione di file nativi" più avanti in questo argomento.
Per esportare i dati in blocco da un'istanza di SQL Server a un file di dati in formato carattere, specificare il tipo di archiviazione di file char per tutte le colonne della tabella.
Per importare i dati in blocco in un'istanza di SQL Server da un file di dati, specificare il tipo di archiviazione di file char per i tipi archiviati nel formato carattere e, a seconda dei casi, uno dei tipi elencati di seguito per i dati archiviati nel formato nativo:
tipo di archiviazione di file Parametro da specificare nel prompt dei comandi char c[har]varchar c[har]nchar wnvarchar wTesto T[ext]ntext2 Wbinary xvarbinary xImmagine I[mage]datetime d[ate]smalldatetime Dtime tedate dedatetime2 d2datetimeoffset dodecimal nnumeric nfloat f[loat]real rInt i[nt]bigint B[igint]smallint s[mallint]tinyint t[inyint]money m[oney]smallmoney Mbit b[it]uniqueidentifier usql_variant V[ariant]timestamp xUDT (tipo di dati definito dall'utente) UXML Xvector v[ector]*L'interazione tra lunghezza del campo, lunghezza del prefisso e caratteri di terminazione determina la quantità di spazio di archiviazione allocata in un file di dati ai dati non di tipo carattere esportati come tipo di archiviazione di file char.
**I tipi di dati ntext, text e image verranno rimossi in una versione futura di SQL Server. Evitare di utilizzare questi tipi di dati in nuovi progetti di sviluppo e pianificare la modifica delle applicazioni che ne fanno uso. Usare in alternativa nvarchar(max), varchar(max)e varbinary(max) .
Tipi di archiviazione file nativi
I tipi di archiviazione di file nativi vengono registrati nel file di formato come tipo di dati del file host corrispondente.
| tipo di archiviazione di file | Tipo di dati del file host |
|---|---|
| char | SQLCHAR |
| varchar | SQLCHAR |
| nchar | SQLNCHAR |
| nvarchar | SQLNCHAR |
| Testo | SQLCHAR |
| ntext | SQLNCHAR |
| binary | SQLBINARY |
| varbinary | SQLBINARY |
| Immagine | SQLBINARY |
| datetime | SQLDATETIME |
| smalldatetime | SQLDATETIM4 |
| decimal | SQLDECIMAL |
| numeric | SQLNUMERIC |
| float | SQLFLT8 |
| real | SQLFLT4 |
| int | SQLINT |
| bigint | SQLBIGINT |
| smallint | SQLSMALLINT |
| tinyint | SQLTINYINT |
| money | SQLMONEY |
| smallmoney | SQLMONEY4 |
| bit | SQLBIT |
| uniqueidentifier | SQLUNIQUEID |
| sql_variant | SQLVARIANT |
| timestamp | SQLBINARY |
| UDT (tipo di dati definito dall'utente) | SQLUDT |
| vector | SQLVECTOR |
I file di dati archiviati in formato carattere usano char come tipo di archiviazione file. Per questi file di dati di tipo carattere SQLCHAR costituisce pertanto l'unico tipo di dati incluso in file di formato.
Non è possibile importare in blocco i dati in colonne text, ntext e image con
DEFAULTvalori.
Considerazioni aggiuntive per i tipi di archiviazione di file
Quando si esportano i dati in blocco da un'istanza di SQL Server a un file di dati:
È sempre possibile specificare char come tipo di archiviazione file, ad eccezione delle colonne di tipo vettore che non supportano la conversione da e verso char.
Se si immette un tipo di archiviazione di file che rappresenta una conversione implicita non valida, bcp avrà esito negativo. Ad esempio, nonostante sia possibile specificare int per i dati smallint , se si specifica smallint per i dati int si verificheranno errori di overflow.
Se i tipi di dati non carattere, come float, money, datetimeo int, vengono archiviati in base al tipo dei relativi database, i dati verranno scritti nel file di dati nel formato nativo di SQL Server.
Nota
Dopo l'impostazione interattiva di tutti i campi in un comando bcp, viene richiesto di salvare le risposte relative a ogni campo in un file di formato non XML. Per altre informazioni sui file di formato non XML, vedere File in formato non XML (SQL Server).