Vad är en BCP fil?
BCP (Bulk Copy Format) är Microsoft SQL Servers tekniska dataformat som definierar datastrukturer för att lagra olika databasdatatypvärden för import/export. Formatet definierar helt tolkningen av varje datakolumn så att uppsättningen värden som anges i datafilen kan läsas. Verktyget BCP använder BCP-filformatet för att läsa data från en sådan fil och identifiera den.
BCP filformat
BCP-formatfilen är ett XML-dokument som definierar kolumnordningen, namnet och datatypen. Det låter användare importera/exportera stora mängder data från datafil som anger dessa fält. Detta är användbart vid massimport av datavärden från datafiler. Antalet och ordningen på datafälten i datafilen kan skilja sig från de i måltabellens kolumner. Det är då BCP-dataformatfilen kommer till hjälp genom att ange ordning och typ av kolumner för att importera data.
Formatfilens struktur representeras i följande format.
<BCPFORMAT ...>
<RECORD>
<FIELD ID = "fieldID" xsi:type = "fieldType" [...] />
</RECORD>
<ROW>
<COLUMN SOURCE = "fieldID" NAME = "columnName" xsi:type = "columnType" [...] />
</ROW>
</BCPFORMAT>
BCP-datatyper
Datatyp | Omfång | Representation |
---|---|---|
BigInt | -263 (-9,223,372,036,854,775,808) till 263-1 (9,223,372,036,854,775,807) | BigInt = ["-"]1*19DIGIT |
Binär | 1 till 8000 byte | hexadecimalkodat Unicode-strängformat Binary = 32000OCTET |
Bit | 0 eller 1 | enkel Unicode-sträng Bit = “0” / “1” |
Char | 1 till 8000 | Unicode String Format, Char = 16000OCTET |
CLRUDT | VarBinary | CLRUDT = 0*nOCTET med n = 4 x (2,147,483,647) |
Datum | 0001-01-01 till 9999-12-31 | ÅÅÅÅ-MM-DD strängformat |
DatumTid | 1753-01-01 00:00:00.000 till 9999-12-31 23:59:59.997 | Unicode ÅÅÅÅ-MM-DD tt:mm:ss[.nnn] strängformat |
DateTime2 | 0001-01-01 00:00:00.0000000 till 9999-12-31 23:59:59.9999999. | Unicode ÅÅÅÅ-MM-DD hh:mm:ss[.nnnnnn] strängformat |
DateTimeOffset | 0001-01-01 00:00:00.0000000 till 9999-12-31 23:59:59.9999999 i tidszonen Coordinated Universal Time (UTC) | Unicode ÅÅÅÅ-MM-DD hh:mm:ss[.nnnnnn] [{+ |
Decimal | -1038 + 1 till 1038 – 1 | Unicode-strängformat Decimal = ["-"] 0*38DIGIT ["."0*38DIGIT] |
Float | -1,79E+308 till -2,23E-308; 0; från 2.23E-308 till 1.79E+308 | Unicode-strängformat |
Bild | sekvens av byte som sträcker sig från 0 till 231 – 1 (2 147 483 647) | hexadecimalkodat Unicode-strängformat |
Int | -231 (-2,147,483,648) till 231 – 1 (2,147,483,647) | Unicode-strängformat |