Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-databas i Microsoft Fabric
Denna artikel beskriver dataformatattributen, fältspecifika prompts och hur man lagrar fält-för-fält-data i en icke-XML-fil i verktyget bcp . Denna information kan vara till hjälp när du bulkexporterar SQL Server-data för massimport till ett annat program, till exempel ett annat databasprogram. Standarddataformaten (native, character eller Unicode) i källtabellen kan vara inkompatibla med den datalayout som det andra programmet förväntar sig. Om det finns en inkompatibilitet måste du beskriva datalayouten när du exporterar datan.
Anmärkning
För mer information om dataformat för import eller export av data, se Dataformat för bulkimport eller bulkexport.
bcp-dataformatattribut
Använd bcp för att specificera strukturen för varje fält i en datafil genom följande dataformatattribut:
Fillagringstyp
Fillagringstypen beskriver hur data lagras i datafilen. Du kan exportera data till en datafil som dess databastabellstyp (nativeformat), i dess teckenrepresentation (teckenformat), eller som vilken datatyp som helst som stödjer implicit konvertering. Till exempel kan du kopiera en smallint som en int. Användardefinierade datatyper exporteras som sina bastyper. För mer information, se Specificera fillagringstyp med bcp.
Prefixlängd
För att ge så kompakt fillagring som möjligt vid bulkexport av data i internt format till en datafil föregår
bcpvarje fält med ett eller flera tecken som anger fältets längd. Dessa tecken kallas för längdprefixtecken. För mer information, se Specificera prefixlängd i datafiler med bcp.Fältlängd
Fältlängden anger det maximala antalet tecken som krävs för att representera data i teckenformat. Fältlängden är redan känd om data lagras i det interna formatet. För mer information, se Specificera fältlängd genom att använda bcp.
Fältavgränsare
För teckendatafält låter valfria avslutande tecken markera slutet på varje fält i en datafil (med en fältterminator) och slutet på varje rad (med en radterminator). Avslutande tecken är ett sätt att indikera för program som läser datafilen där ett fält eller en rad slutar och en annan börjar. Mer information finns i Ange fält- och radavgränsare.
Översikt över de fältspecifika promptarna
Om du kör bcp interaktivt med alternativet in eller out, men inte anger vare sig formatfilväxeln (-f) eller en dataformatväxel (-n, -c, -w eller -N) för varje kolumn i käll- eller måltabellen, uppmanar bcp dig att ange vart och ett av de föregående attributen, ett i taget. I varje prompt bcp ges ett standardvärde baserat på SQL Server-datatypen i tabellkolumnen. Att acceptera standardvärdet för alla promptar ger samma resultat som att ange det ursprungliga formatet (-n) på kommandoraden. Varje fråga visar ett standardvärde inom hakparenteser: [standard]. Tryck på ENTER för att acceptera den visade standarden. Om du vill ange ett annat värde än standardvärdet anger du det nya värdet i kommandotolken.
Example
Följande exempel använder bcp för att interaktivt massexportera data från tabellen HumanResources.myTeam till filen myTeam.txt. Innan du kan köra exemplet måste du skapa den här tabellen. För information om tabellen och hur man skapar den, se HumanResources.myTeam Sample Table.
Kommandot specificerar varken en formatfil eller en datatyp, utan bcp begär därför dataformatinformation. Vid Windows-kommandoprompten, skriv:
bcp AdventureWorks.HumanResources.myTeam out myTeam.txt -T
För varje kolumn visar bcp uppmaningar om fältspecifika värden. I följande exempel visas fältspecifika prompter för kolumnerna EmployeeID och Name i tabellen och föreslår standardfillagringstypen (det interna formatet) för varje kolumn. Prefixets längder för EmployeeID och Name kolumnerna är 0 respektive 2. Användaren anger ett kommatecken (,) som avslutare för varje fält.
Enter the file storage type of field EmployeeID [smallint]:
Enter prefix-length of field EmployeeID [0]:
Enter field terminator [none]:,
Enter the file storage type of field Name [nvarchar]:
Enter prefix length of field Name [2]:
Enter field terminator [none]:,
.
.
.
Ekvivalenta promptar visas vid behov för varje tabellkolumn i ordning.
Lagra fält-för-fält-data i en fil som inte är XML-format
Efter att du specificerat alla tabellkolumner bcp uppmanar det dig att eventuellt generera en icke-XML-fil som lagrar den fält-för-fält-information du just tillhandahöll (se föregående exempel). Om du väljer att generera en formatfil kan du använda den när du exporterar data från den tabellen eller importerar liknande strukturerad data till SQL Server.
Anmärkning
Du kan använda formatfilen för att massimportera data från datafilen till en instans av SQL Server eller massexportera data från tabellen, utan att behöva ange formatet på nytt. För mer information, se Formatera filer för att importera eller exportera data.
I följande exempel skapas en fil med icke-XML-format med namnet myFormatFile.fmt:
Do you want to save this format information in a file? [Y/n] y
Host filename: [bcp.fmt]myFormatFile.fmt
Standardnamnet för formatfilen är bcp.fmt, men du kan ange ett annat filnamn om du vill.
Anmärkning
För en datafil som använder ett enda dataformat för sin lagringstyp, såsom tecken eller nativt format, kan du snabbt skapa en formatfil utan att exportera eller importera data genom att använda alternativet format . Detta tillvägagångssätt är enkelt och låter dig skapa antingen en XML-fil eller en icke-XML-fil. För mer information, se Skapa en formatfil med bcp.
Relaterade uppgifter
- Ange fillagringstyp med bcp
- Ange prefixlängd i datafiler med bcp
- Specificera fältlängd genom att använda bcp
- Specificera fält- och radterminatorer