Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Analytics Platform System (PDW)
Wanneer u gegevens bulksgewijs importeert in een SQL Server-tabel of gegevens bulksgewijs exporteert uit een tabel, kunt u een indelingsbestand gebruiken om alle indelingsgegevens op te slaan die nodig zijn om gegevens bulksgewijs te exporteren of bulksgewijs te importeren. Dit omvat indelingsinformatie voor elk veld in een gegevensbestand ten opzichte van die tabel.
SQL Server ondersteunt twee typen indelingsbestanden: XML-indelingen en niet-XML-indelingsbestanden. Zowel bestanden die geen XML-indeling zijn als XML-indelingsbestanden bevatten beschrijvingen van elk veld in een gegevensbestand en XML-indelingsbestanden bevatten ook beschrijvingen van de bijbehorende tabelkolommen. Over het algemeen zijn XML- en niet-XML-formaten onderling uitwisselbaar. We raden u echter aan om de XML-syntaxis te gebruiken voor nieuwe indelingsbestanden, omdat ze verschillende voordelen bieden ten opzichte van bestanden die geen XML-indeling zijn. Zie XML Format Files (SQL Server) voor meer informatie.
Opmerking
Deze syntaxis, inclusief bulksgewijs invoegen, wordt niet ondersteund in Azure Synapse Analytics. In Azure Synapse Analytics en andere integraties van het clouddatabaseplatform kunt u gegevensverplaatsing uitvoeren via de COPY-instructie in Azure Data Factoryof met behulp van T-SQL-instructies zoals COPY INTO en PolyBase.
Voordelen van het opmaken van bestanden
Format-bestanden bieden een flexibel systeem voor het schrijven van gegevensbestanden waarvoor weinig of geen bewerking nodig is om te voldoen aan andere gegevensindelingen of om gegevensbestanden van andere software te lezen.
U kunt gegevens bulksgewijs importeren zonder onnodige gegevens toe te voegen of te verwijderen of bestaande gegevens in het gegevensbestand opnieuw te ordenen. Indelingsbestanden kunnen handig zijn wanneer er een verschil bestaat tussen velden in het gegevensbestand en kolommen in de tabel.
Voorbeelden van indelingsbestanden
In de volgende voorbeelden ziet u de indeling van een bestand met een niet-XML-indeling en van een XML-indelingsbestand. Deze indelingsbestanden komen overeen met de HumanResources.myTeam tabel in de AdventureWorks2025 voorbeelddatabase. Deze tabel bevat vier kolommen: EmployeeID, Name, Titleen ModifiedDate.
Opmerking
Zie de voorbeeldtabel HumanResources.myTeam (SQL Server) voor informatie over deze tabel en hoe u deze maakt.
Eén. Een bestand in een niet-XML-indeling gebruiken
Het volgende niet-XML-indelingsbestand maakt gebruik van de systeemeigen SQL Server-gegevensindeling voor de HumanResources.myTeam tabel. Dit indelingsbestand is gemaakt met behulp van de volgende bcp opdracht.
bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.Fmt -n -T
De bcp opdracht heeft standaard een lokaal, standaardexemplaar van SQL Server met Windows-verificatie. U kunt desgewenst andere instantie- en aanmeldingsgegevens opgeven. Zie bcp Utility voor meer informatie. Als u bijvoorbeeld een externe serverinstantie met Windows-authenticatie wilt specificeren, gebruikt u:
bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.Fmt -n -T -S servername/instancename
De inhoud van dit indelingsbestand is als volgt, te beginnen met het primaire versienummer van SQL Server en de informatie over de metagegevens van de tabel.
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
Zie Niet-XML-indelingsbestanden (SQL Server) gebruiken voor meer informatie.
B. Een XML-indelingsbestand gebruiken
Het volgende XML-indelingsbestand maakt gebruik van de systeemeigen SQL Server-gegevensindeling voor de HumanResources.myTeam tabel. Dit indelingsbestand is gemaakt met behulp van de volgende bcp opdracht.
bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.xml -x -n -T
Het indelingsbestand bevat:
<?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>
Zie XML Format Files (SQL Server) voor meer informatie.
Wanneer is een formatbestand vereist?
Indelingsbestanden zijn meestal vereist in de volgende omstandigheden:
Wanneer u een
INSERT ... SELECT * FROM OPENROWSET(BULK...)instructie gebruikt.Voor complexe bulkimportsituaties met bcp of
BULK INSERT.Hetzelfde gegevensbestand wordt gebruikt als bron voor meerdere tabellen met verschillende schema's.
Het gegevensbestand heeft een ander aantal velden dan de doeltabel kolommen heeft; bijvoorbeeld:
- De doeltabel bevat ten minste één kolom waarvoor een standaardwaarde is gedefinieerd of
NULLis toegestaan. - De gebruikers hebben
SELECT/INSERTgeen machtigingen voor een of meer kolommen in de tabel. - Eén gegevensbestand wordt gebruikt met twee of meer tabellen met verschillende schema's.
- De doeltabel bevat ten minste één kolom waarvoor een standaardwaarde is gedefinieerd of
De kolomvolgorde verschilt voor het gegevensbestand en de tabel.
De eindtekens of lengten van voorvoegsels verschillen tussen de kolommen van het gegevensbestand.
Opmerking
Als er geen indelingsbestand is, wordt de opgegeven gegevensindeling gebruikt als de standaardmethode voor het interpreteren van de velden van het gegevensbestand als een bcp-opdracht (-n, -c, -wof -N) of een BULK INSERT bewerking de DATAFILETYPE optie aangeeft.
Gerelateerde taken
- Systeemeigen BCP-indelingsbestand versus tekstbestand en stuklijst gebruiken
- Niet-XML-indelingsbestanden gebruiken (SQL Server)
- XML-indelingsbestanden (SQL Server)
- Gegevensindelingen voor bulkimport of bulkexport (SQL Server)
- Een indelingsbestand maken met bcp (SQL Server)
Verwante inhoud
- bcp Utility
- Een indelingsbestand gebruiken om gegevens bulksgewijs te importeren (SQL Server)
- Een indelingsbestand gebruiken om een tabelkolom (SQL Server) over te slaan
- Een indelingsbestand gebruiken om een gegevensveld (SQL Server) over te slaan
- Een indelingsbestand gebruiken om tabelkolommen toe te wijzen aan gegevensbestandsvelden (SQL Server)