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 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.