Specifying Field Length by Using bcp

Długość pole wskazuje maksymalną liczbę znaków, które są niezbędne do reprezentacji danych w formacie znaków.Długość pole jest już znany, jeśli dane są przechowywane w format macierzysty; na przykład int Typ danych ma 4 bajty. Jeżeli 0 dla długość prefiksu BCP polecenia monit o podanie długość pole Domyślna długość pole i wpływu długość pole na przechowywanie danych w plikach danych, które zawierają char dane.

The bcp Monituj o długość pole

Jeśli interaktywne BCP polecenie zawiera w or limit czasu opcji bez plik formatu przełącznik (-f) lub przełącznika formatu danych (-n, -c, -w, lub -N), wierszy poleceń dla długość pole danych każdego pole w następujący sposób:

Enter length of field <field_name> [<default>]:

Na przykład, że tego monitu w kontekście zobacz Specifying Data Formats for Compatibility by Using bcp.

Uwaga

Po interaktywnie określeniu wszystkich pole w BCP polecenie, zapisać swoje odpowiedzi dla każdego pole w pliku formatu XML inny niż monity o wprowadzenie polecenia.Aby uzyskać więcej informacji na temat plików w formacie XML inny niż zobacz Understanding Non-XML Format Files.

Czy BCP polecenia monituje długość pole zależy od kilku czynników, w następujący sposób:

  • Kiedy kopiujesz typów danych, które nie mają stałą długość i określić długość prefiksu 0, BCP długość pole.

  • Podczas konwertowania danych noncharacter danych znakowych BCP sugeruje domyślną długość pole wystarczającą do przechowywania danych.

  • Jeżeli typ pliku magazynu jest noncharacter, BCP polecenia nie pojawia się monit długość pole.The data is stored in the Microsoft SQL Server native data representation (native format).

Za pomocą domyślna długość pole

Ogólnie rzecz biorąc, Microsoft Po zaakceptowaniu zaleca BCP-sugerowane długość pole wartości domyślne.Tworząc plik danych trybu znaków przy użyciu domyślną długość pole daje pewność, że dane nie zostaną obcięte i że nie występują błędy przepełnienia numeryczne.

Jeśli określisz długość pole, który jest niepoprawny, mogą wystąpić problemy.Na przykład, jeżeli w przypadku kopiowania danych liczbowych i określić długość pole, który jest zbyt krótki na dane BCP narzędzie drukuje komunikat przepełnienie i nie są kopiowane dane.Ponadto w przypadku eksportowania datetime dane i określić pole o długości mniejszej niż 26 bajtów dla ciąg znaków BCP narzędzie obcina danych bez komunikatu o błędzie.

Important noteImportant Note:

Gdy używana jest opcja rozmiar domyślny, SQL Server oczekuje przeczytać cały ciąg. W niektórych sytuacjach wykorzystanie domyślną długość pole może prowadzić do błąd "Nieoczekiwany koniec pliku".Zazwyczaj ten błąd występuje z money i datetime typy danych, gdy wystąpi tylko część pole przewidywane w pliku danych; na przykład, jeśli datetime wartość mm/dd/RR jest określona bez składnika czas i jest krótszy niż długość oczekiwany 24 znak datetime wartość char Format. Aby uniknąć błędów tego typu, za pomocą terminatory pole lub pole danych o stałej długości lub zmienić domyślną długość pole, określając inną wartość.

Domyślna długość pole magazynu plik znaków

Poniższa tabela zawiera listę domyślna długość pole dla danych, które mają być przechowywane jako typ pliku znaków magazynu.Dane Nullable to taką samą długość jak niepustych dane.

Typ danych

Domyślną długością (znaki)

char

Długość określone dla kolumna

varchar

Długość określone dla kolumna

nchar

Dwa razy długości określone dla kolumna

nvarchar

Dwa razy długości określone dla kolumna

Text

0

ntext

0

bit

1

binary

Dwa razy okres zdefiniowany dla kolumna + 1

varbinary

Dwa razy okres zdefiniowany dla kolumna + 1

image

0

datetime

24

smalldatetime

24

float

30

real

30

int

12

bigint

19

smallint

7

tinyint

5

money

30

smallmoney

30

decimal

41*

numeric

41*

uniqueidentifier

37

timestamp

17

varchar(max)

0

varbinary(max)

0

nvarchar(max)

0

UDT

Długość kolumna zdefiniowane przez użytkownika termin (UDT)

XML

0

* Aby uzyskać więcej informacji na temat decimal i numeric typy danych, zobacz decimal and numeric (Transact-SQL).

Uwaga

Kolumna typu tinyint może mieć wartości z zakres od 0 do 255, maksymalna liczba znaków, które są niezbędne do reprezentowania dowolną liczbę w tym zakresie jest trzy (reprezentujących wartości 100 do 255).

Domyślna długość pole macierzysty pliku magazynu

Poniższa tabela zawiera listę domyślna długość pole dla danych, które mają być przechowywane jako plik macierzystego typu magazynu.Nullable danych jest taką samą długość jak niepustych dane i dane znakowe jest zawsze przechowywane w formacie znaków.

Typ danych

Domyślną długością (znaki)

bit

1

binary

Długość określone dla kolumna

varbinary

Długość określone dla kolumna

image

0

datetime

8

smalldatetime

4

float

8

real

4

int

4

bigint

8

smallint

2

tinyint

1

money

8

smallmoney

4

decimal1

*

numeric1

*

uniqueidentifier

16

timestamp

8

1 Aby uzyskać więcej informacji na temat decimal i numeric typy danych, zobacz decimal and numeric (Transact-SQL).

We wszystkich przypadkach poprzednim, aby utworzyć plik danych, aby później ponownie do SQL Server zachowuje miejsce magazynowania z wykorzystaniem minimalnej, prefiks długości domyślny typ przechowywania plików i domyślną długość pole.