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ż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.
Zobacz także