Udostępnij za pomocą


Formatowanie plików do importowania lub eksportowania danych (SQL Server)

Dotyczy:programu SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)

Podczas zbiorczego importowania danych do tabeli programu SQL Server lub zbiorczego eksportowania danych z tabeli można użyć pliku formatu do przechowywania wszystkich informacji o formacie wymaganym do zbiorczego eksportowania lub importowania zbiorczych danych. Obejmuje to informacje o formacie dla każdego pola w pliku danych względem tej tabeli.

Program SQL Server obsługuje dwa typy plików formatu: formaty XML i pliki w formacie innego niż XML. Zarówno pliki w formacie innego niż XML, jak i pliki formatu XML zawierają opisy każdego pola w pliku danych, a pliki formatu XML zawierają również opisy odpowiednich kolumn tabeli. Ogólnie rzecz biorąc, pliki w formacie XML i inne niż XML są zamienne. Zalecamy jednak użycie składni XML dla nowych plików formatu, ponieważ zapewniają one kilka korzyści w porównaniu z plikami formatu innego niż XML. Aby uzyskać więcej informacji, zobacz XML Format Files (SQL Server).

Notatka

Ta składnia, w tym wstawianie zbiorcze, nie jest obsługiwana w usłudze Azure Synapse Analytics. W usłudze Azure Synapse Analytics i innych integracji platformy bazy danych w chmurze wykonaj przenoszenie danych za pośrednictwem instrukcji COPY w usłudze Azure Data Factorylub za pomocą instrukcji języka T-SQL , takich jak COPY INTO i PolyBase.

Zalety plików formatu

Pliki formatu zapewniają elastyczny system do zapisywania plików danych, które wymagają niewielkiej lub żadnej edycji w celu zachowania zgodności z innymi formatami danych lub odczytywania plików danych z innego oprogramowania.

Możesz zbiorczo importować dane bez konieczności dodawania lub usuwania niepotrzebnych danych lub zmiany kolejności istniejących danych w pliku danych. Pliki formatu mogą być przydatne, gdy istnieje niezgodność między polami w pliku danych i kolumnami w tabeli.

Przykłady plików formatu

W poniższych przykładach pokazano układ pliku formatu innego niż XML i pliku formatu XML. Te pliki formatu odpowiadają tabeli HumanResources.myTeam w przykładowej bazie danych AdventureWorks2025. Ta tabela zawiera cztery kolumny: EmployeeID, Name, Titlei ModifiedDate.

Notatka

Aby uzyskać informacje o tej tabeli i sposobie jej tworzenia, zobacz HumanResources.myTeam przykładowej tabeli (SQL Server).

A. Używanie pliku w formacie innego niż XML

Poniższy plik formatu innego niż XML używa natywnego formatu danych programu SQL Server dla tabeli HumanResources.myTeam. Ten plik formatu został utworzony przy użyciu następującego polecenia bcp.

bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.Fmt -n -T

Polecenie bcp domyślnie używa lokalnego, domyślnego wystąpienia programu SQL Server z uwierzytelnianiem systemu Windows. Możesz określić inne informacje dotyczące instancji i logowania według własnego uznania; aby uzyskać więcej informacji, zobacz bcp Utility. Aby na przykład określić serwer zdalny o nazwie wystąpienie z uwierzytelnianiem systemu Windows, użyj:

bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.Fmt -n -T -S servername/instancename

Zawartość tego pliku formatu jest następująca, począwszy od numeru wersji głównej programu SQL Server i informacji o metadanych tabeli.

14.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, zobacz Użyj plików w formacie innym niż XML (SQL Server).

B. Używanie pliku formatu XML

Poniższy plik formatu XML używa natywnego formatu danych programu SQL Server dla tabeli HumanResources.myTeam. Ten plik formatu został utworzony przy użyciu następującego polecenia bcp.

bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.xml -x -n -T

Plik formatu zawiera:

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://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, zobacz XML Format Files (SQL Server).

Kiedy jest wymagany plik formatu?

Pliki formatu są zwykle wymagane w następujących okolicznościach:

  • Gdy używasz instrukcji INSERT ... SELECT * FROM OPENROWSET(BULK...).

  • W przypadku skomplikowanych przypadków importowania zbiorczego przy użyciu bcp lub BULK INSERT.

  • Ten sam plik danych jest używany jako źródło dla wielu tabel, które mają różne schematy.

  • Plik danych ma inną liczbę pól niż tabela docelowa ma kolumn; na przykład:

    • Tabela docelowa zawiera co najmniej jedną kolumnę, dla której jest zdefiniowana wartość domyślna lub NULL jest dozwolona.
    • Użytkownicy nie mają uprawnień SELECT/INSERT na jednej lub więcej kolumnach w tabeli.
    • Pojedynczy plik danych jest używany z co najmniej dwiema tabelami, które mają różne schematy.
  • Kolejność kolumn jest inna dla pliku danych i tabeli.

  • Znaki zakończenia lub długości prefiksów różnią się między kolumnami pliku danych.

Notatka

W przypadku braku pliku formatu, jeśli polecenie bcp określa przełącznik formatu danych (-n, -c, -wlub -N) lub BULK INSERT operacja określa opcję DATAFILETYPE, określony format danych jest używany jako domyślna metoda interpretowania pól pliku danych.