Introduction to Format Files
Plik, który jest używany do przechowywania informacji o formacie, dla każdego pole w pliku danych w odniesieniu do określonej tabela nosi nazwę plik formatu.plik formatu zawiera wszystkie informacje formatu wymaganego eksportu zbiorczego lub danych import zbiorczy.plik formatu zapewnia elastyczne systemu do zapisywania plików danych, które wymaga niewielkie lub zerowe edycji do wykonania innych formatów danych lub odczytać pliki danych z innych programów.
In Microsoft SQL Server 2000 and earlier versions, bulk exporting and importing works with a single type of format file.To jest nadal obsługiwane.Jednak SQL Server 2005 i jego nowszych wersjach obsługiwać pliki w formacie XML jako alternatywę. Nazywane są pliki w formacie oryginalnego typu pliki w formacie XML inny niż.
Wszystkie pliki w formacie zawierają opisy wszystkich pole w pliku danych.Pliki w formacie XML również zawierają opisy odpowiednich kolumn tabela.Ogólnie rzecz biorąc pliki w formacie XML i XML inny niż wymiennie.Zaleca się jednak użyć składni języka XML dla nowych plików w formacie ponieważ zapewniają wiele zalet w porównaniu z plików w formacie XML inny niż.plik formatu XML ma następujące cechy:
Self-describing i łatwo czytać, tworzyć i rozszerzenia.
Zawiera typy danych kolumn miejsce docelowe.
Umożliwia to oddzielenie jak dane są reprezentowane w pliku danych i jaki typ danych jest skojarzona z każdego pole w pliku.Na przykład jeśli plik danych zawiera znak reprezentację danych, odpowiedni typ kolumna SQL zostaną utracone.
The bcp command and the BULK INSERT instrukcja use the miejsce docelowe tabela columns to do the type conversion.W ten sposób tabela miejsce docelowe to konieczne.Z drugiej strony funkcja OPENROWSET(BULK...) opiera się na plik formatu XML do odczytywania danych z pliku danych.W ten sposób tabela miejsce docelowe opcjonalne.
Umożliwia ładowanie pole zawierające typ danych jednego dużego obiektu (LOB) z pliku danych.
Aby uzyskać informacje na temat układu każdego typu plików Zobacz "Przykłady," w dalszej części tego tematu.
Gdy jest wymagany plik formatu?
INSERT...SELECT * FROM OPENROWSET(BULK...) instrukcja zawsze wymaga plik formatu.
- Dla BCP lub BULK INSERT w sytuacjach, prosty, za pomocą plik formatu jest opcjonalny i rzadko konieczne.Jednak w sytuacjach, złożonych importu zbiorczego, plik formatu jest często wymagany.
Jeśli wymagane są pliki w formacie:
Ten sam plik danych jest używany jako urządzenie źródłowe dla wielu tabel, które mają różne schematy.
Plik danych zawiera różne liczby pól, że kolumny w tabela miejsce docelowe, na przykład:
W tabela miejsce docelowe zawiera co najmniej jedną kolumna, dla których każda wartość domyślna jest zdefiniowana lub wartość NULL jest dozwolone.
Użytkownicy nie masz uprawnień SELECT/INSERT na jedną lub więcej kolumn w tabela.
Jednego pliku danych jest używana z dwóch lub większej liczby tabel, które mają różne schematy.
Kolejność kolumn różni się w pliku danych i tabela.
Zakończenie znaków lub długości prefiksu różnią się w pliku danych kolumny.
Uwaga
W przypadku braku plik formatu Jeśli BCP Określa, przełącznik formatu danych ( polecenia-n, -c, -w, or -N) lub operacją BULK INSERT Określa opcja DATAFILETYPE, format danych określony jest używana jako domyślna metoda interpretacji pola pliku danych.
Przykłady
Następujące przykłady pokazują układ pliku XML inny niż format i plik formatu XML.Te pliki w formacie odpowiadają HumanResources.myTeam Tabela w AdventureWorks Przykładowa baza danych. Ta tabela zawiera cztery kolumny: EmployeeID, Name, Title, a ModifiedDate.
Uwaga
Aby uzyskać informacje dotyczące tej tabela i utwórz go zobacz Creating the HumanResources.myTeam Table.
A.Przy użyciu innych niż XML plik formatu
Następujący plik formatu XML inny niż używa SQL Server format macierzysty danych HumanResources.myTeam Tabela. Ten plik formatu został utworzony za pomocą następujących bcp polecenie.
bcp AdventureWorks.HumanResources.myTeam format nul -f myTeam.Fmt -n -T
The contents of this format file are as follows: 9.0
4
1 SQLSMALLINT 0 2 "" 1 EmployeeID ""
2 SQLNCHAR 2 100 "" 2 Name SQL_Latin1_General_CP1_CI_AS
3 SQLNCHAR 2 100 "" 3 Title SQL_Latin1_General_CP1_CI_AS
4 SQLNCHAR 2 100 "" 4 Background SQL_Latin1_General_CP1_CI_AS
Aby uzyskać więcej informacji zobaczUnderstanding Non-XML Format Files.
B.Za pomocą XML plik formatu
Używa następującego pliku XML w formacie SQL Server format macierzysty danych HumanResources.myTeam Tabela. Ten plik formatu został utworzony za pomocą następujących bcp polecenie.
bcp AdventureWorks.HumanResources.myTeam format nul -f myTeam.Xml -x -n -T
Plik formatu zawiera:
<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="NativePrefix" LENGTH="1"/>
<FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="EmployeeID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="Title" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="Background" xsi:type="SQLNVARCHAR"/>
</ROW>
</BCPFORMAT>
Aby uzyskać więcej informacji zobaczUnderstanding XML Format Files.