Specifica del tipo di archiviazione di file tramite bcp

Il tipo di archiviazione di file indica la modalità di archiviazione dei dati nel file di dati. I dati possono essere esportati in un file utilizzando il tipo di dati della tabella del database in cui si trovano i dati (formato nativo), come rappresentazione dei caratteri (formato carattere) o utilizzando qualsiasi tipo di dati nel caso in cui sia supportata la conversione implicita. È, ad esempio, possibile copiare il tipo smallint come int. I tipi di dati definiti dall'utente vengono esportati utilizzando il tipo di dati di base corrispondente.

[!NOTA] Per informazioni sulla conversione dei dati, vedere Conversione del tipo di dati (Motore di database).

Richiesta del tipo di archiviazione di dati con bcp

Se un comando bcp interattivo include l'opzione in o out senza l'opzione del file di formato (-f) o l'opzione del formato dati (-n, -c, -w o -N), verrà richiesto il tipo di archiviazione di file per ciascun campo di dati, come riportato 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 eseguire l'esportazione di massa dei dati da un'istanza di Microsoft SQL Server in un file di dati nel formato di archiviazione più compatto (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 eseguire l'esportazione di massa dei dati da un'istanza di SQL Server in un file di dati in formato carattere, specificare il tipo di archiviazione char per tutte le colonne della tabella.

  • Per eseguire l'importazione di massa di dati 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 al prompt dei comandi

    char1

    c[har]

    varchar

    c[har]

    nchar

    w

    nvarchar

    w

    text2

    T[ext]

    ntext2

    W

    binary

    x

    varbinary

    x

    image2

    I[mage]

    datetime

    d[ate]

    smalldatetime

    D

    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 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 carattere esportati come tipo di archiviazione di file char. Per ulteriori informazioni, vedere Archiviazione di dati in formato carattere.
    2 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. In alternativa utilizzare nvarchar(max), varchar(max) e varbinary(max). Per ulteriori informazioni, vedere Utilizzo di tipi di dati per valori di grandi dimensioni.

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

char1

SQLCHAR

varchar

SQLCHAR

nchar

SQLNCHAR

nvarchar

SQLNCHAR

text2

SQLCHAR

ntext2

SQLNCHAR

binary

SQLBINARY

varbinary

SQLBINARY

image2

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 Il tipo di archiviazione dei file di dati archiviati nel formato carattere è char. Per questi file di dati SQLCHAR costituisce pertanto l'unico tipo di dati incluso in file di formato.

2 Non è possibile eseguire l'importazione di massa di dati in colonne text, ntext e image con valori DEFAULT.

Ulteriori considerazioni sui tipi di archiviazione di file

Quando si esegue l'esportazione di massa da un'istanza di SQL Server in 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 avrà esito negativo. Ad esempio, sebbene sia possibile specificare int per dati smallint, se si specifica smallint per dati int, si verificheranno errori di overflow.
  • Se i tipi di dati non carattere, quali float, money, datetime o 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 aver specificato in modo interattivo tutti i campi di un comando bcp, verrà richiesto di salvare le risposte relative a ciascun campo in un file in formato non XML. Per ulteriori informazioni sui file in formato non XML, vedere Informazioni sui file di formato non XML.

Vedere anche

Concetti

Definizione della lunghezza di campo tramite bcp
Impostazione dei caratteri di terminazione del campo e della riga
Impostazione della lunghezza del prefisso in file di dati
Archiviazione di dati in formato carattere

Altre risorse

Utilità bcp
Tipi di dati (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005