Using a Format File to Bulk Import Data

W tym temacie przedstawiono użycie formatu pliku w operacji importu zbiorczego.plik formatu mapuje pola pliku danych do kolumn w tabela.In Microsoft SQL Server 2005 and later versions, you can use a non-XML or XML format file to bulk import data when using a bcp command or a BULK INSERT or INSERT ...WYBIERZ * Z OPENROWSET(BULK...) Transact-SQL polecenie.

Important noteImportant Note:

plik formatu do pracy z plikiem danych Unicode znaku wszystkich pól danych wejściowych musi być ciągi tekstowe Unicode (oznacza to, stałym rozmiarze lub zakończone znaków Unicode ciągi).

Uwaga

Jeśli znasz pliki w formacie, zobacz Understanding Non-XML Format Files i Understanding XML Format Files.

Opcje plik formatu dla polecenia importu zbiorczego

Poniższa tabela zawiera podsumowanie opcji formatu pliku dla każdego z poleceń importu zbiorczego.

Polecenie zbiorczego ładowania

Przy użyciu opcji plik formatu

WSTAWIANIA ZBIORCZEGO

FORMATFILE = "format_file_path"

WSTAW...WYBIERZ * Z OPENROWSET(BULK...)

FORMATFILE = "format_file_path"

BCPw

-fformat_file

Aby uzyskać więcej informacji zobacz Narzędzie BCP, BULK INSERT (Transact-SQL), lub OPENROWSET (Transact-SQL).

Uwaga

Zbiorcza eksportowania lub importowania danych SQLXML, użyj jednej z następujących typów danych w sieci plik formatu: SQLCHAR SQLVARYCHAR (dane są przesyłane w stronie kodowej klient lub w stronie kodowej implikowane przez sortowanie), SQLNCHAR lub SQLNVARCHAR (dane są przesyłane w standardzie Unicode), lub SQLBINARY lub SQLVARYBIN (dane są przesyłane bez żadnej konwersji).

Przykłady

Przykłady w tej sekcji zilustrować sposób użycia formatu plików do importu zbiorczego danych przy użyciu BCP polecenie i BULK INSERT a INSERT...Zawsze zwraca wartość NULLPrzed uruchomieniem jednego z przykładów importu zbiorczego, należy utworzyć przykładową tabela, plik danych i plik formatu.

Tabela próbki

W przykładach wymagają, aby tabela o nazwie myTestFormatFiles w tabeli można utworzyćAdventureWorks przykładowej bazy danych w obszarze dbo schematu.Aby utworzyć w tej tabela SQL Server Management Studio Edytor kwerend wykonać:

USE AdventureWorks;
GO
CREATE TABLE myTestFormatFiles (
   Col1 smallint,
   Col2 nvarchar(50),
   Col3 nvarchar(50),
   Col4 nvarchar(50)
   );
GO

Przykładowy plik danych

W przykładach wykorzystano przykładowy plik danych myTestFormatFiles-c.Dat, który zawiera następujące rekordy. Aby utworzyć plik danych na Microsoft Wiersz polecenia systemu Windows, wpisz:

10,Field2,Field3,Field4
15,Field2,Field3,Field4
46,Field2,Field3,Field4
58,Field2,Field3,Field4

Przykładowy format plików

Niektóre przykłady w tej sekcji korzystają z pliku do formatu XML myTestFormatFiles-f-x-c.Xml, a inne przykłady używania plik formatu XML inny niż. Oba pliki w formacie za pomocą znaku formatów danych i terminator pole inny niż domyślny (,).

Przykładowy plik formatu innych niż XML

W poniższym przykładzie użyto BCP do generowania XML plik formatu myTestFormatFiles Tabela. The myTestFormatFiles.Fmt file contains the following information:

9.0
4
1       SQLCHAR       0       7       ","      1     Col1         ""
2       SQLCHAR       0       100     ","      2     Col2         SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     ","      3     Col3         SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       100     "\r\n"   4     Col4         SQL_Latin1_General_CP1_CI_AS

Aby użyć BCP with the Format opcję, aby utworzyć ten plik formatu, w wiersz polecenia systemu Windows, wpisz:

bcp AdventureWorks..MyTestFormatFiles format nul -c -t, -f myTestFormatFiles.Fmt -T

Aby uzyskać więcej informacji na temat tworzenia pliku w formacie zobacz Creating a Format File.

Przykładowy plik formatu XML

W poniższym przykładzie użyto BCP utworzyć do generowania XML plik formatu myTestFormatFiles Tabela. The myTestFormatFiles.Xml file contains the following information:

<?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="CharTerm" TERMINATOR="," MAX_LENGTH="7"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="Col1" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Col2" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="Col3" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="Col4" xsi:type="SQLNVARCHAR"/>
 </ROW>
</BCPFORMAT>

Aby użyć BCP with the Format opcję, aby utworzyć ten plik formatu, w wiersz polecenia systemu Windows, wpisz:

bcp AdventureWorks..MyTestFormatFiles format nul -c -t, -x -f myTestFormatFiles.Xml -T

Za pomocą bcp

W poniższym przykładzie użyto BCP do import zbiorczy dane z myTestFormatFiles-c.Dat plik danych do HumanResources.myTestFormatFiles Tabela w AdventureWorks Przykładowa baza danych. W tym przykładzie plik formatu XML, MyTestFormatFiles.Xml. W przykładzie usunięto wszystkie istniejące wiersze tabela przed zaimportowaniem plików danych.

W wiersz polecenia systemu Windows wpisz polecenie:

bcp AdventureWorks..myTestFormatFiles in C:\myTestFormatFiles-c.Dat -f C:\myTestFormatFiles.Xml -T

Uwaga

Aby uzyskać więcej informacji na temat tego polecenia Zobacz Narzędzie BCP.

Za pomocą BULK INSERT

W poniższym przykładzie użyto BULK INSERT do import zbiorczy dane z myTestFormatFiles-c.Dat plik danych do HumanResources.myTestFormatFiles Tabela w AdventureWorks Przykładowa baza danych. W tym przykładzie plik formatu XML inny niż MyTestFormatFiles.Fmt. W przykładzie usunięto wszystkie istniejące wiersze tabela przed zaimportowaniem plików danych.

W SQL Server Management Studio Uruchomić Edytor kwerendy:

USE AdventureWorks;
GO
DELETE myTestFormatFiles;
GO
BULK INSERT myTestFormatFiles 
   FROM 'C:\myTestFormatFiles-c.Dat' 
   WITH (FORMATFILE = 'C:\myTestFormatFiles.Fmt');
GO
SELECT * FROM myTestFormatFiles;
GO

Uwaga

Aby uzyskać więcej informacji na temat tych zasad Zobacz BULK INSERT (Transact-SQL).

Za pomocą dostawca OPENROWSET zbiorcze zestawu zestaw wierszy

W poniższym przykładzie użyto INSERT ... SELECT * FROM OPENROWSET(BULK...) Zbiorcza importu danych z myTestFormatFiles-c.Dat plik danych do HumanResources.myTestFormatFiles Tabela w AdventureWorks Przykładowa baza danych. W tym przykładzie plik formatu XML, MyTestFormatFiles.Xml. W przykładzie usunięto wszystkie istniejące wiersze tabela przed zaimportowaniem plików danych.

W SQL Server Management Studio Uruchomić Edytor kwerendy:

USE AdventureWorks;
DELETE myTestFormatFiles;
GO
INSERT INTO myTestFormatFiles
    SELECT *
      FROM  OPENROWSET(BULK  'C:\myTestFormatFiles-c.Dat',
      FORMATFILE='C:\myTestFormatFiles.Xml'     
      ) as t1 ;
GO
SELECT * FROM myTestFormatFiles;
GO

Po zakończeniu przykładową tabela, można usunąć go za pomocą następującej instrukcja:

DROP TABLE myTestFormatFiles

Uwaga

Aby uzyskać więcej informacji na temat klauzula OPENROWSET BULK zobacz OPENROWSET (Transact-SQL).