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
Azure Synapse Analytics
Analytics Platform System (PDW)
In SQL Server worden twee typen indelingsbestanden ondersteund voor bulksgewijs exporteren en importeren: bestanden zonder XML-indeling en XML-indelingsbestanden.
Voordelen van bestanden in een niet-XML-indeling
U kunt automatisch een bestand met een niet-XML-indeling maken door de indelingsoptie op te geven in een bcp-opdracht .
Wanneer u een bestaand indelingsbestand opgeeft in een bcp-opdracht , gebruikt de opdracht de waarden die zijn vastgelegd in het indelingsbestand en wordt u niet gevraagd om het bestandstype, de lengte van het voorvoegsel, de veldlengte of het veldeindteken.
U kunt een indelingsbestand maken voor een bepaald gegevenstype, zoals tekengegevens of systeemeigen gegevens.
U kunt een niet-XML-indelingsbestand maken dat interactief opgegeven kenmerken voor elk gegevensveld bevat. Zie Compatibiliteitsgegevensindelingen opgeven bij het gebruik van bcp (SQL Server) voor meer informatie.
XML-indelingsbestanden bieden verschillende voordelen ten opzichte van niet-XML-indelingsbestanden. Zie XML-indelingsbestanden (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.
Structuur van niet-XML-bestandsformaten
Een bestand met een niet-XML-indeling is een tekstbestand met een specifieke structuur. Het niet-XML-formaatbestand bevat informatie over het type van bestandsopslag, de lengte van het veldvoorvoegsel, de veldlengte en het veldafscheidingsteken van elke tabelkolom.
In de volgende afbeelding ziet u de indelingsbestandsvelden voor een voorbeeldbestand met een niet-XML-indeling.
              
               
              
              
            
De velden Versie en Aantal kolommen vinden slechts één keer plaats. Hun betekenissen worden beschreven in de volgende tabel.
| Veld voor Bestandssjabloon | Beschrijving | 
|---|---|
| Versie | Versienummer van het bcp-hulpprogramma : 9.0 = SQL Server 2005 (9.x) 10.0 = SQL Server 2008 (10.0.x) 11.0 = SQL Server 2012 (11.x) 12.0 = SQL Server 2014 (12.x) 13.0 = SQL Server 2016 (13.x) 14.0 = SQL Server 2017 (14.x) 15.0 = SQL Server 2019 (15.x) 16.0 = SQL Server 2022 (16.x) Het versienummer wordt alleen herkend door bcp, niet door Transact-SQL. Opmerking: de versie van het bcp-hulpprogramma dat wordt gebruikt om een indelingsbestand te lezen, moet hetzelfde zijn als of een latere versie dan is gebruikt om het indelingsbestand te maken. Sql Server 2012 (11.x) bcp kan bijvoorbeeld een versie 10.0-indelingsbestand lezen, die wordt gegenereerd door SQL Server 2008 (10.0.x) bcp, maar SQL Server 2008 (10.0.x) bcp kan geen versie 12.0-indelingsbestand lezen, dat wordt gegenereerd door SQL Server 2014 (12.x). | 
| Aantal kolommen | Aantal velden in het gegevensbestand. Dit getal moet in alle rijen hetzelfde zijn. | 
In de andere indelingsvelden worden de gegevensvelden beschreven die bulksgewijs moeten worden geïmporteerd of geëxporteerd. Elk gegevensveld vereist een afzonderlijke rij in het indelingsbestand. Elke indelingsbestandrij bevat waarden voor de indelingsbestandsvelden die in de volgende tabel worden beschreven.
| Veld Format-bestand | Beschrijving | 
|---|---|
| Hostbestand veldvolgorde | Een getal dat de positie aangeeft van elk veld in het gegevensbestand. Het eerste veld in de rij is 1, enzovoort. | 
| Gegevenstype hostbestand | Geeft het gegevenstype aan dat is opgeslagen in een bepaald veld van het gegevensbestand. Gebruik SQLCHAR met ASCII-gegevensbestanden; voor gegevensbestanden met systeemeigen indeling gebruikt u standaardgegevenstypen. Zie File Storage-type opgeven met behulp van bcp (SQL Server) voor meer informatie. | 
| Lengte van voorvoegsel | Het aantal lengtevoorvoegseltekens voor het veld. Geldige lengten voorvoegsels zijn 0, 1, 2, 4 en 8. Als u wilt voorkomen dat u het lengtevoorvoegsel opgeeft, stelt u dit in op 0. Er moet een lengtevoorvoegsel worden opgegeven als het veld gegevenswaarden bevat NULL. Zie Voorvoegsellengte opgeven in gegevensbestanden met behulp van bcp (SQL Server) voor meer informatie. | 
| Lengte van hostbestandsgegevens | Maximale lengte, in bytes, van het gegevenstype dat is opgeslagen in het specifieke veld van het gegevensbestand. Als u een bestand met een niet-XML-indeling maakt voor een tekstbestand met scheidingstekens, kunt u 0 opgeven voor de lengte van de hostbestandsgegevens van elk gegevensveld. Wanneer een tekstbestand met scheidingstekens met een lengte van 0 en een afsluiter wordt geïmporteerd, wordt de waarde voor de veldlengte genegeerd, omdat de opslagruimte die door het veld wordt gebruikt, gelijk is aan de lengte van de gegevens plus de afsluiter. Zie Veldlengte opgeven met behulp van bcp (SQL Server) voor meer informatie. | 
| Terminator | Scheidingsteken om de velden in een gegevensbestand te scheiden. Algemene eindtekens zijn komma's ( ,), tab (\t) en einde van regel (\r\n). Zie Veld- en rijeindtekens opgeven (SQL Server) voor meer informatie. | 
| Volgorde van serverkolommen | Volgorde waarin kolommen worden weergegeven in de SQL Server-tabel. Als het vierde veld in het gegevensbestand bijvoorbeeld wordt toegewezen aan de zesde kolom in een SQL Server-tabel, is de volgorde van de serverkolom voor het vierde veld 6. Als u wilt voorkomen dat een kolom in de tabel gegevens uit het gegevensbestand ontvangt, stelt u de waarde van de serverkolomvolgorde in op 0. | 
| Serverkolomnaam | Naam van de kolom die is gekopieerd uit de SQL Server-tabel. De werkelijke naam van het veld is niet vereist, maar het veld in het indelingsbestand mag niet leeg zijn. | 
| Kolomcollatie | De sortering die wordt gebruikt voor het opslaan van teken- en Unicode-gegevens in het gegevensbestand. | 
Opmerking
U kunt een indelingsbestand wijzigen zodat u bulksgewijs kunt importeren uit een gegevensbestand waarin het aantal of de volgorde van de velden verschilt van het aantal of de volgorde van tabelkolommen. Zie de lijst Gerelateerde taken voor meer informatie.
Voorbeeld van een niet-XML-bestandsformaat
In het volgende voorbeeld ziet u een eerder gemaakt bestand met een niet-XML-indeling (myDepartmentIdentical-f-c.fmt). In dit bestand wordt een veld met tekengegevens beschreven voor elke kolom in de HumanResources.Department tabel in de AdventureWorks2022 voorbeelddatabase.
Het gegenereerde indelingsbestand, myDepartmentIdentical-f-c.fmt, bevat de volgende informatie:
12.0
4
1       SQLCHAR       0       7       "\t"     1     DepartmentID     ""
2       SQLCHAR       0       100     "\t"     2     Name             SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     "\t"     3     GroupName        SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       24      "\r\n"   4     ModifiedDate     ""
Opmerking
Zie Structuur van niet-XML-indelingsbestanden voor een afbeelding waarin de indelingsvelden met betrekking tot dit voorbeeldbestand met een niet-XML-indeling worden weergegeven.
Gerelateerde taken
- Een indelingsbestand maken met bcp (SQL Server)
- 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)