Delen via


Lengte van voorvoegsel opgeven in gegevensbestanden met behulp van bcp (SQL Server)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Als u de meest compacte bestandsopslag wilt bieden voor het bulksgewijs exporteren van gegevens in systeemeigen indeling naar een gegevensbestand, wordt met de bCP-opdracht elk veld voorafgegaan door een of meer tekens die de lengte van het veld aangeeft. Deze tekens worden lengtevoorvoegsels genoemd.

De bcp-prompt voor lengte van voorvoegsel

Als een interactieve bcp-opdracht de in - of uit-optie bevat zonder de bestandsindelingsswitch (-f) of een schakeloptie voor gegevensindeling (-n, -c, -w of -N), wordt de opdrachtprompt voor de lengte van het voorvoegsel van elk gegevensveld als volgt weergegeven:

Enter prefix length of field <field_name> [<default>]:

Als u 0 opgeeft, vraagt bcp u om de lengte van het veld (voor een tekengegevenstype) of een veldeindteken (voor een native niet-tekengegevenstype).

Opmerking

Nadat u alle velden in een bcp opdracht interactief hebt opgegeven, wordt u gevraagd uw antwoorden op te slaan voor elk veld in een bestand met een niet-XML-indeling. Zie Niet-XML-indelingsbestanden (SQL Server) voor meer informatie over bestanden zonder XML-indeling.

Overzicht van lengte van voorvoegsel

Als u de lengte van het voorvoegsel van een veld wilt opslaan, hebt u voldoende bytes nodig om de maximale lengte van het veld weer te geven. Het aantal bytes dat vereist is, is ook afhankelijk van het bestandstype, de null-waarde van een kolom en of de gegevens worden opgeslagen in het gegevensbestand in de systeemeigen of tekenindeling. Een gegevenstype voor tekst of afbeelding vereist bijvoorbeeld vier voorvoegseltekens om de veldlengte op te slaan, maar voor een varchar-gegevenstype zijn twee tekens vereist. In het gegevensbestand worden deze karakters met lengteprefixen opgeslagen in de interne binaire gegevensindeling van SQL Server.

Belangrijk

Wanneer u een systeemeigen indeling gebruikt, gebruikt u lengtevoorvoegsels in plaats van veldeindtekens. Systeemeigen indelingsgegevens kunnen conflicteren met terminators omdat een gegevensbestand met een systeemeigen indeling wordt opgeslagen in de interne binaire SQL Server-gegevensindeling.

Lengte van voorvoegsel voor bulkexport

Opmerking

De standaardwaarde die wordt opgegeven bij de prompt voor de lengte van het voorvoegsel wanneer u een veld exporteert, geeft de meest efficiënte voorvoegsellengte voor het veld aan.

Null-waarden worden weergegeven als een leeg veld. Om aan te geven dat het veld leeg is (vertegenwoordigt NULL), bevat het veldvoorvoegsel de waarde -1; Dat wil gezegd, het vereist ten minste 1 byte. Houd er rekening mee dat als een SQL Server-tabelkolom null-waarden toestaat, de kolom een voorvoegsellengte van 1 of hoger vereist, afhankelijk van het bestandstype.

Wanneer u gegevens bulksgewijs exporteert en opslaat in systeemeigen gegevenstypen of tekenindeling, gebruikt u de lengten van voorvoegsels die worden weergegeven in de volgende tabel.

SQL Server

data type
Natuurlijke indeling

NIET NULL
Systeemeigen formaat

NUL
Tekenopmaak

NIET NULL
Tekenopmaak

NUL
teken 2 2 2 2
varchar 2 2 2 2
nchar 2 2 2 2
nvarchar 2 2 2 2
tekst* 4 4 4 4
ntext* 4 4 4 4
binary 2 2 2 2
varbinary 2 2 2 2
Afbeelding* 4 4 4 4
datetime 0 1 0 1
smalldatetime 0 1 0 1
decimal 1 1 1 1
numeriek 1 1 1 1
float 0 1 0 1
echte 0 1 0 1
int 0 1 0 1
bigint 0 1 0 1
smallint 0 1 0 1
tinyint 0 1 0 1
geld 0 1 0 1
kleingeld 0 1 0 1
bit 0 1 0 1
uniqueidentifier 1 1 0 1
tijdstempel 1 1 1 1
varchar(max) 8 8 8 8
varbinary(max) 8 8 8 8
UDT (een door de gebruiker gedefinieerd gegevenstype) 8 8 8 8
XML 8 8 8 8
sql_variant 8 8 8 8

*De gegevenstypen ntext, tekst en afbeelding worden verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze gegevenstypen in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die deze momenteel gebruiken. Gebruik nvarchar(max), varchar(max)en varbinary(max).

Voorvoegsellengtes voor bulkimport

Wanneer gegevens bulksgewijs worden geïmporteerd, is de lengte van het voorvoegsel de waarde die is opgegeven toen het gegevensbestand oorspronkelijk werd gemaakt. Als het gegevensbestand niet is gemaakt met een bcp-opdracht , bestaan lengtevoorvoegseltekens waarschijnlijk niet. Geef in dit geval 0 op voor de lengte van het voorvoegsel.

Opmerking

Als u een voorvoegsellengte wilt opgeven in een gegevensbestand dat niet is gemaakt met behulp van bcp, gebruikt u de lengten in voorvoegsellengten voor bulkexport, eerder in dit onderwerp.

Zie ook

bcp Utility
gegevenstypen (Transact-SQL)
veldlengte opgeven met behulp van bcp (SQL Server)
Veld- en rijeindtekens opgeven (SQL Server)
Bestandstype opgeven met behulp van bcp (SQL Server)