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)
De veldlengte geeft het maximum aantal tekens aan dat nodig is om gegevens in tekenindeling weer te geven. De veldlengte is al bekend als de gegevens zijn opgeslagen in de systeemeigen indeling; Het gegevenstype int neemt bijvoorbeeld 4 bytes in beslag. Als u 0 voor de lengte van het voorvoegsel hebt aangegeven, vraagt de bcp-opdracht u om veldlengte, de standaardveldlengte en de impact van veldlengte op gegevensopslag in gegevensbestanden die tekengegevens bevatten.
De bcp-prompt voor Veldlengte
Als een interactieve bcp-opdracht de optie in of uit bevat zonder de bestandsindelingsswitch (-f) of een schakeloptie voor gegevensindeling (-n, -c, -w of -N), vraagt de opdracht als volgt om de veldlengte van elk gegevensveld:
Enter length of field <field_name> [<default>]:
Zie Gegevensindelingen opgeven voor compatibiliteit bij het gebruik van bcp (SQL Server) voor een voorbeeld waarin deze prompt in context wordt weergegeven.
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.
Of een bcp-opdrachtprompt voor veldlengte afhankelijk is van verschillende factoren, als volgt:
Wanneer u gegevenstypen kopieert die niet van vaste lengte zijn en u een voorvoegsellengte van 0 opgeeft, vraagt bcp om een veldlengte.
Bij het converteren van niet-tekengegevens naar tekengegevens, stelt bcp een standaardveldlengte voor die groot genoeg is om de gegevens op te slaan.
Als het bestandstype niet-character is, vraagt de bcp-opdracht niet om een veldlengte. De gegevens worden opgeslagen in de systeemeigen microsoft SQL Server-gegevensweergave (systeemeigen indeling).
Standaardveldlengten gebruiken
Over het algemeen raadt Microsoft u aan de standaardwaarden voor bcp te accepteren voor de veldlengte. Wanneer een gegevensbestand voor de tekenmodus wordt gemaakt, zorgt het gebruik van de standaardveldlengte ervoor dat gegevens niet worden afgekapt en dat er geen numerieke overloopfouten optreden.
Als u een veldlengte opgeeft die onjuist is, kunnen er problemen optreden. Als u bijvoorbeeld numerieke gegevens kopieert en u een veldlengte opgeeft die te kort is voor de gegevens, drukt het bcp-hulpprogramma een overloopbericht af en kopieert de gegevens niet. Als u datum/tijd-gegevens exporteert en een veldlengte opgeeft van minder dan 26 bytes voor de tekenreeks, worden de gegevens door het bcp-hulpprogramma afgekapt zonder een foutbericht.
Belangrijk
Wanneer de standaardgrootteoptie wordt gebruikt, verwacht SQL Server een hele tekenreeks te lezen. In sommige situaties kan het gebruik van een standaardveldlengte leiden tot de foutmelding "onverwacht einde van bestand". Deze fout treedt doorgaans op met het geld - en datum/tijd-gegevenstype wanneer slechts een deel van het verwachte veld in het gegevensbestand voorkomt; Wanneer bijvoorbeeld een datum/tijd-waarde van mm/dd/jj wordt opgegeven zonder het tijdonderdeel en dus korter is dan de verwachte lengte van 24 tekens van een datum/tijd-waarde in tekennotatie . Als u dit type fout wilt voorkomen, gebruikt u veldeindtekens of gegevensvelden met een vaste lengte of wijzigt u de standaardveldlengte door een andere waarde op te geven.
Standaardveldlengten voor tekenbestandsopslag
De volgende tabel bevat de standaardveldlengten voor gegevens die moeten worden opgeslagen als een type tekenbestandsopslag. Nullable data heeft dezelfde lengte als niet-nulle gegevens.
| Gegevenstype | Standaardlengte (tekens) |
|---|---|
| teken | Lengte gedefinieerd voor de kolom |
| varchar | Lengte gedefinieerd voor de kolom |
| nchar | Twee keer de lengte die is gedefinieerd voor de kolom |
| nvarchar | Twee keer de lengte die is gedefinieerd voor de kolom |
| Text | 0 |
| ntext | 0 |
| bit | 1 |
| binary | Twee keer de lengte die is gedefinieerd voor de kolom + 1 |
| varbinary | Twee keer de lengte die is gedefinieerd voor de kolom + 1 |
| image | 0 |
| datetime | 24 |
| smalldatetime | 24 |
| float | 30 |
| echte | 30 |
| int | 12 |
| bigint | 19 |
| smallint | 7 |
| tinyint | 5 |
| geld | 30 |
| kleingeld | 30 |
| decimal | 41* |
| numeriek | 41* |
| uniqueidentifier | 37 |
| tijdstempel | 17 |
| varchar(max) | 0 |
| varbinary(max) | 0 |
| nvarchar(max) | 0 |
| UDT | Lengte van de door de gebruiker gedefinieerde term (UDT) kolom |
| XML | 0 |
*Zie decimale en numerieke gegevenstypen (Transact-SQL) voor meer informatie over de decimale en numerieke gegevenstypen.
Opmerking
Een kolom van het type tinyint kan waarden hebben van 0 tot en met 255; het maximum aantal tekens dat nodig is om een willekeurig getal in dat bereik weer te geven, is drie (waarden 100 tot en met 255).
Standaardveldlengten voor systeemeigen bestandsopslag
De volgende tabel bevat de standaardveldlengten voor gegevens die moeten worden opgeslagen als systeemeigen bestandstype. nl-NL: Gegevens die 'null' kunnen zijn, hebben dezelfde lengte als gegevens die dat niet zijn, en tekengegevens worden altijd opgeslagen in tekenformaat.
| Gegevenstype | Standaardlengte (tekens) |
|---|---|
| bit | 1 |
| binary | Lengte gedefinieerd voor de kolom |
| varbinary | Lengte gedefinieerd voor de kolom |
| image | 0 |
| datetime | 8 |
| smalldatetime | 4 |
| float | 8 |
| echte | 4 |
| int | 4 |
| bigint | 8 |
| smallint | 2 |
| tinyint | 1 |
| geld | 8 |
| kleingeld | 4 |
| decimal | * |
| numeriek | * |
| uniqueidentifier | 16 |
| tijdstempel | 8 |
*Zie decimale en numerieke gegevenstypen (Transact-SQL) voor meer informatie over de decimale en numerieke gegevenstypen.
In alle voorgaande gevallen gebruikt u een lengtevoorvoegsel met het standaard bestandsopslagtype en de standaardveldlengte om een gegevensbestand voor later herladen in SQL Server te creƫren dat de opslagruimte tot een minimum beperkt.
Zie ook
bcp Utility
gegevenstypen (Transact-SQL)
Veld- en rijeindtekens opgeven (SQL Server)
Lengte van voorvoegsel opgeven in gegevensbestanden met behulp van bcp (SQL Server)
Bestandstype opgeven met behulp van bcp (SQL Server)
Null-waarden behouden of standaardwaarden gebruiken tijdens het bulksgewijs importeren (SQL Server)