Określanie pola i terminatory wiersza
Znaków pól danych, opcjonalnie znaków kończące umożliwiają znaku końca każdego pola w pliku danych z terminator pola i na końcu każdego wiersza z terminator wiersza.Znaki kończące są jednym ze sposobów wskazać programy odczytywania pliku danych, w którym rozpoczyna się jedno pole lub końców wierszy i innego pola lub wiersza.
Ważne: |
---|
Podczas używania trybu macierzystego lub Unicode format macierzysty, używają prefiksów długość zamiast pole terminatory.Native format data can conflict with terminators because a native-format data file is stored in the Microsoft SQL Server internal binary data format. |
Znaki obsługiwane jako terminatory
Bcp polecenia, instrukcja WSTAW luzem i dostawca zbiorczych zestawów zestaw wierszy OPENROWSET obsługuje różne znaki jako terminatory pole lub wiersza i zawsze szukać pierwsze wystąpienie każdego terminator.Poniższa tabela zawiera listę obsługiwanych znaków dla terminatory.
Znaku końca |
Wskazany przez |
---|---|
Karta |
\t Jest to domyślne terminator pola. |
Znak nowego wiersza |
\n Jest to domyślne terminator wiersza. |
Powrotu karetki/wysuwu wiersza |
\r |
Kreska ułamkowa odwrócona1 |
\\ |
Terminator Null (nonvisible terminator)2 |
\0 |
Dowolny znak drukowalny (znaki nie są drukowalne null, z wyjątkiem kartę, nowy wiersz i przewozu zwrócić sterowanie) |
(*, A, t, l i tak dalej) |
Ciąg maksymalnie 10 znaków drukowalnych niektóre lub wszystkie wymienione wcześniej terminatory |
(wytwarzanie \t**, zakończenie,!!!!!!!!!!, \t—\n i tak dalej) |
1 Tylko t, n, r, 0 i '\0' znaki pracować z ukośnikiem ewakuacji do wyprodukowania znak kontrolny.
2 , Nawet jeśli znak kontrolny null (\0) nie jest widoczny po wydrukowaniu, jest odrębne znaków w pliku danych.Oznacza to, że używając znak kontrolny null terminator pole lub wiersza jest inny niż posiadające wcale nie terminator pole lub wiersza.
Ważne: |
---|
Jeżeli znak terminator występuje w danych, jest interpretowany jako terminator nie jako dane i dane, po znaku jest interpretowana jako należące do następnego pole lub rekordu.Dlatego wybierz swój terminatory uważnie, aby upewnić się, że nigdy nie pojawią się w danych. |
Za pomocą wiersza terminatory
Terminator wiersza może być ten sam znak jak terminator do ostatniego pole.Ogólnie terminator distinct wiersza jest jednak użyteczne.Na przykład do wyprodukowania produktów wyjściowych tabelarycznych, zakończenia ostatniego pole w każdym wierszu znakiem nowego wiersza (\n) i wszystkie pole z znak tabulacji (\t).Do każdego rekordu danych należy umieścić w osobnym wierszu pliku danych, należy określić \r\n kombinacji jako terminator wiersza.
Ostrzeżenie
Podczas korzystania z bcp interaktywnie i określić jak terminator wiersza \n (nowy wiersz) bcp automatycznie prefiksy znakiem \r (powrót karetki) które wyniki w terminator wiersz z \r\n.
Określanie terminatory na wywóz luzem
Gdy zostanie eksport zbiorczy char lub nchar danych i chcesz używać terminator niedomyślne terminator do należy określić bcp polecenia.Terminatory można określić następujące sposoby:
Plik formatu, który określa terminator na podstawie polu pole.
Ostrzeżenie
Informacje dotyczące korzystania z formatu plików, zobacz Format plików importowanie lub eksportowanie danych.
Bez plik formatu istnieje następujących alternatyw:
Za pomocą -t Przełącz się do określenia terminator wiersza dla wszystkich pole z wyjątkiem ostatniego pole w wierszu i za pomocą - r przełącznika terminator wiersza.
Użycie przełącznika formatu znaków (- c lub -w) bez -t przełącznik, który ustawia terminator pola znak tabulacji, \t.Jest to równoważne -t\t.
Ostrzeżenie
Jeśli określisz - n (danych w trybie macierzystym) lub -N (macierzysty Unicode) przełącznik terminatory nie są wstawiane.
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), i wybrano nie określić długość prefiksu i długość pole, wiersze polecenia dla terminator pola każdego pole, domyślnie brak:
Enter field terminator [none]:
Wartością domyślną jest zwykle wyborem.Jednakże w przypadku char lub nchar pola danych, zapoznaj się z podsekcją następujące "Guidelines for Using terminatory." 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.Aby uzyskać więcej informacji dotyczących plików w formacie XML programu, zobacz Opis plików w formacie XML programu.
Wskazówki dotyczące używania terminatory
W niektórych sytuacjach terminator przydaje się do char lub nchar pole danych.Na przykład:
Dla kolumna danych, który zawiera wartość null w pliku danych, który zostanie zaimportowany do programu, który nie rozumie informacji długość prefiksu.
Jakiejkolwiek kolumna danych, która zawiera wartość null jest uważany za o zmiennej długości.W przypadku braku długości prefiksu terminator konieczna jest identyfikacja końca pole null, upewniając się, że dane są poprawnie interpretowane.
Dla kolumna długo stałej długości, którego obszar jest tylko częściowo używany przez wiele wierszy.
W tej sytuacji określając terminator można zminimalizować miejsca, umożliwiając pole traktowane jako pole o zmiennej długości.Więcej informacji o wzajemne oddziaływanie długość prefiksu długość polei terminatory na przechowywanie char danych, zobacz Przechowywanie danych w formacie znaków.
Przykłady
This example bulk exports the data from the AdventureWorksHumanResources.Department table to the Department-c-t.txt data file using character format, with a comma as a field terminator and the newline character (\n) as the row terminator.
Bcp polecenie zawiera następujące przełączniki.
Przełącznik |
Opis |
---|---|
-c |
Określa, że pola danych jest ładowany jako danych znakowych. |
-t, |
Określa przecinek (,) jako terminator pola. |
-r \n |
Terminator wiersza określa jako znak nowego wiersza.Jest terminator wiersza domyślnego, więc jego określenie jest opcjonalne. |
-T |
Określa, że bcp narzędzie łączy się z SQL Server z zaufane połączenie przy użyciu zintegrowanych zabezpieczeń.Jeśli -T nie jest określony, należy określić - U i -P pomyślnie zalogować. |
Aby uzyskać więcej informacji, zobacz Narzędzie bcp.
W Microsoft Wprowadź wiersz polecenia systemu Windows:
bcp AdventureWorks2008R2.HumanResources.Department out C:\myDepartment-c-t.txt -c -t, -r \n -T
Tworzy to Department-c-t.txt, który zawiera 16 rekordy z czterema każdego pola.Pola są oddzielone przecinkami.
Określanie terminatory dla importu zbiorczego
Kiedy luzem importu char lub nchar danych, polecenie import zbiorczy musi rozpoznawać terminatory, które są używane w pliku danych.Jak można określić terminatory zależy polecenia importu zbiorczego następująco:
BCP
Określanie terminatory dla operacji importowania używa tej samej składni, jak w przypadku operacji eksportowania.Aby uzyskać więcej informacji zobacz "Określanie terminatory dla masowych wywóz" wcześniej w tym temacie.
WSTAW LUZEM
Terminatory mogą być określone dla poszczególnych pól w plik formatu lub pliku całości danych przy użyciu kwalifikatory pokazane w poniższej tabela.
Kwalifikator
Opis
FIELDTERMINATOR ='field_terminator'
Określa terminator pola do znaków i pliki danych znak Unicode.
Wartość domyślna to \t (znak tabulacji).
ROWTERMINATOR ='row_terminator'
Określa terminator wiersza do znaków i pliki danych znak Unicode.
Wartość domyślna to \n (znak nowego wiersza).
Aby uzyskać więcej informacji, zobacz BULK INSERT (Transact-SQL).
WSTAW...WYBIERZ * Z OPENROWSET(BULK...)
dostawca OPENROWSET luzem zestaw wierszy terminatory można określić tylko w plik formatu (co jest wymagane z wyjątkiem dla typów danych dużego obiektu).Jeśli plik danych znak terminator innych niż domyślne, musi być zdefiniowana w plik formatu.Aby uzyskać więcej informacji, zobacz Tworzenie pliku formatu i Luzem Importuj dane przy użyciu formatu pliku.
Aby uzyskać więcej informacji o klauzula OPENROWSET luzem, zobacz OPENROWSET (Transact-SQL).
Przykłady
Przykłady w tej sekcji import zbiorczy znak formularz danych Department-c-t.txt pliku danych utworzonego w poprzednim przykładzie do myDepartment tabela w AdventureWorks2008R2 przykładowej bazy danych.Przed uruchomieniem przykłady, należy utworzyć w tej tabela.Do utworzenia tabela pod dbo schematu, w SQL Server Management Studio Edytor kwerend wykonać następujący kod:
USE AdventureWorks2008R2;
GO
DROP TABLE myDepartment;
CREATE TABLE myDepartment
(DepartmentID smallint,
Name nvarchar(50),
GroupName nvarchar(50) NULL,
ModifiedDate datetime not NULL CONSTRAINT DF_AddressType_ModifiedDate DEFAULT (GETDATE())
);
GO
A.Określ interaktywnie terminatory przy użyciu bcp
Przywóz następujących masowych przykład Department-c-t.txt danych przy użyciu pliku bcp polecenia.W poleceniu użyto tej samej przełączników polecenia jako eksport zbiorczy polecenia.Aby uzyskać więcej informacji zobacz "Określanie terminatory dla masowych wywóz" wcześniej w tym temacie.
W wiersz polecenia systemu Windows należy wprowadzić:
bcp AdventureWorks2008R2..myDepartment in C:\myDepartment-c-t.txt -c -t , -r \n -T
B.Za pomocą WSTAWIĆ luzem interaktywnie określić terminatory
Przywóz następujących masowych przykład Department-c-t.txt danych przy użyciu pliku BULK INSERT instrukcja, która używa kwalifikatorów, przedstawione w poniższej tabela.
Opcja |
Attribute |
---|---|
DATAFILETYPE ='char' |
Określa, że pola danych jest ładowany jako danych znakowych. |
FIELDTERMINATOR =',' |
Określa przecinkiem (,) jako terminator pola. |
ROWTERMINATOR ='\n' |
Terminator wiersza określa jako znak nowego wiersza. |
W SQL Server Management Studio Edytor kwerend wykonać następujący kod:
USE AdventureWorks2008R2;
GO
BULK INSERT myDepartment FROM 'C:\myDepartment-c-t.txt'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
GO
Zobacz także