Udostępnij za pośrednictwem


Określając długość pola przez używanie bcp

długość pole Wskazuje maksymalną liczbę znaków, które są wymagane 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 długość prefiksu 0 bcp polecenia monituje o długość pole, domyślnie długość poles i wpływ długość pole na przechowywanie danych w plikach danych, które zawierają char danych.

Monituj o długość pola bcp

Jeśli interakcyjne bcp zawiera polecenia w lub się opcji bez przełącznik plik formatu (-f) lub przełącznik formatu danych (- n, - c, -w, lub -N), wierszy poleceń dla długość pole każdego pole danych w następujący sposób:

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

Na przykład, która pokazuje Monituj w kontekście, zobacz Określanie formatów danych dla zgodności przez używanie bcp.

Ostrzeżenie

Po interaktywnie określić wszystkie pole w bcp polecenia wierszy polecenia Zapisz swoje odpowiedzi dla każdego pole w innych niż XML plik formatu.Więcej informacji na temat plików w formacie XML programu, zobacz Opis plików w formacie XML programu.

Czy bcp wierszy poleceń dla długość pole zależy od kilku czynników, w następujący sposób:

  • Jeśli kopiowane są typy danych o stałej długości i określić długość prefiksu 0, bcp o długość pole.

  • Podczas konwertowania danych znakowych danych noncharacter bcp sugeruje domyślną długość pole wystarczająco duże do przechowywania danych.

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

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

Ogólnie Microsoft zaleca, które możesz zaakceptować bcp-sugerowane domyślne wartości dla długość pole.Podczas tworzenia pliku danych trybu znaków przy użyciu domyślnego długość pole zapewnia, że dane nie zostaną obcięte i że nie występują błędy przepełnienia numeryczne.

Jeśli określisz długość pole jest niepoprawna, mogą wystąpić problemy.Dla wystąpienie, kopiowania danych liczbowych i określić długość pole, która jest zbyt krótki na dane bcp narzędzie drukuje komunikat przepełnienia i nie są kopiowane dane.Ponadto podczas eksportowania datetime danych i określ długość pole mniej niż 26 bajtów dla ciąg znaków bcp narzędzie obcina danych bez komunikatu o błędzie.

Ważna informacjaWażne:

Gdy używana jest domyślna opcja rozmiar, SQL Server spodziewa się przeczytać cały ciąg.W niektórych sytuacjach wykorzystanie domyślnie długość pole może prowadzić do "Nieoczekiwany koniec pliku" Wystąpił błąd.Zazwyczaj ten błąd występuje z money i datetime typów danych, gdy tylko część pole przewidywane występuje w pliku danych; na przykład, jeśli datetime wartość mm/dd/rr jest określona bez czas składnika i dlatego jest krótszy niż długość oczekiwany znak 24 datetime wartość w char format.Aby uniknąć tego typu błędów, 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ść pola do przechowywania plików znaków

W poniższej tabela przedstawiono domyślna długość pole danych mają być przechowywane jako typ przechowywania plików znaków.Nullable danych jest taką samą długość jak niepustych danych.

Typ danych

Domyślna długość (znaki)

char

Długość zdefiniowana dla kolumna

varchar

Długość zdefiniowana dla kolumna

nchar

Dwa razy długości zdefiniowane dla kolumna

nvarchar

Dwa razy długości zdefiniowane dla kolumna

Text

0

ntext

0

bit

1

binary

Dwa razy długości zdefiniowane dla kolumna + 1

varbinary

Dwa razy długości zdefiniowane 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 termin zdefiniowany przez użytkownika (UDT)

XML

0

* Aby uzyskać więcej informacji o decimal i numeric typów danych, zobacz decimal i numeric (Transact-SQL).

Ostrzeżenie

Kolumna typu tinyint może przyjmować wartości od 0 do 255; Maksymalna liczba znaków, które są potrzebne do reprezentowania dowolnej liczby, w tym zakres trzy (reprezentujących wartości 100 do 255).

Domyślna długość pola do przechowywania plików macierzystych

W poniższej tabela przedstawiono domyślna długość pole do przechowywania pliku macierzysty typ przechowywania danych.Nullable danych jest taką samą długość jak niepustych dane i dane znakowe jest zawsze przechowywane w formacie znaków.

Typ danych

Domyślna długość (znaki)

bit

1

binary

Długość zdefiniowana dla kolumna

varbinary

Długość zdefiniowana 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 Więcej informacji o decimal i numeric typów danych, zobacz decimal i numeric (Transact-SQL).

We wszystkich przypadkach poprzedniego, aby utworzyć plik danych później ponowne ładowanie do SQL Server , zachowuje miejsca składowania do stosowania minimalnej, długość prefiksu domyślny typ przechowywania plików i domyślnie długość pole.