Specifica del tipo di archiviazione di file tramite bcp (SQL Server)
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 utilizzando il tipo di dati della tabella del database in cui si trovano (formato nativo), come caratteri (formato carattere) o utilizzando 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.
Richiesta del tipo di archiviazione di dati con bcp
Se un comando interattivo bcp include l'opzione in o out senza l'opzione relativa al file di formato (-f) o al formato dei dati (-n, -c, -wo -N), viene richiesto il tipo di archiviazione di file di ogni campo di dati, come illustrato 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 in blocco i dati da un'istanza di SQL Server in un file di dati in formato carattere, specificare
char
come tipo di archiviazione file per tutte le colonne della tabella.Per eseguire l'importazione bulk di dati in un'istanza di SQL Server da un file di dati, specificare il tipo di archiviazione file come
char
per i tipi archiviati in formato carattere e, per i dati archiviati in formato di tipo di dati nativo, specificare uno dei tipi di archiviazione file, in base alle esigenze:tipo di archiviazione di file Parametro da specificare nel prompt dei comandi char
1c
[har
]varchar
c[har]
nchar
w
nvarchar
w
text
2T
[ext
]ntext2
W
binary
x
varbinary
x
image
2I
[mage
]datetime
d[ate] smalldatetime
D
time
te
date
de
datetime2
d2
datetimeoffset
do
decimal
n
numeric
n
float
f[loat] real
r
Int
i[nt] bigint
B[igint]
smallint
s[mallint] tinyint
t[inyint] money
m[oney] smallmoney
M
bit
b[it]
uniqueidentifier
u
sql_variant
V[ariant]
timestamp
x
UDT
(tipo di dati definito dall'utente)U
XML
X
1 L'interazione della lunghezza del campo, della lunghezza del prefisso e dei caratteri di terminazione determina la quantità di spazio di archiviazione allocata in un file di dati per dati non di tipo non carattere esportato come
char
tipo di archiviazione file.2 I
ntext
tipi di dati ,text
eimage
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. In alternativa, usarenvarchar(max)
,varchar(max)
evarbinary(max)
.
Tipi di archiviazione di 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 1 |
SQLCHAR |
varchar |
SQLCHAR |
nchar |
SQLNCHAR |
nvarchar |
SQLNCHAR |
text 2 |
SQLCHAR |
ntext 2 |
SQLNCHAR |
binary |
SQLBINARY |
varbinary |
SQLBINARY |
image 2 |
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 |
1 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.
2 Non è possibile importare in blocco i dati in text
colonne , ntext
e image
con valori DEFAULT.
Ulteriori considerazioni sui 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 il tipo di archiviazione di file
char
.Se si immette un tipo di archiviazione di file che rappresenta una conversione implicita non valida, bcp ha esito negativo; ad esempio, è possibile specificare
int
per i dati, se si specificasmallint
persmallint
int
i dati, il risultato degli errori di overflow.Quando i tipi di dati non carattere, ad
float
esempio ,datetime
money
, oint
vengono archiviati come tipi di database, i dati vengono 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).
Vedi anche
Utilità bcp
Tipi di dati (Transact-SQL)
Specifica della lunghezza di campo tramite bcp (SQL Server)
Impostazione dei caratteri di terminazione del campo e della riga (SQL Server)
Specifica della lunghezza del prefisso nei file di dati tramite bcp (SQL Server)