适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统(PDW)
Microsoft Fabric中的SQL数据库
本文介绍了数据格式属性、字段特定提示,以及如何将逐字段数据存储在该工具的 bcp 非XML格式文件中。 这些信息在批量导出SQL Server数据以便批量导入到其他程序(比如其他数据库程序)时会很有帮助。 源表中的默认数据格式(原生、字符或 Unicode)可能与另一个程序期望的数据布局不兼容。 如果存在不兼容,导出数据时必须描述数据布局。
注意
有关数据导入或导出的数据格式的更多信息,请参见批量 导入或批量导出的数据格式。
BCP 数据格式属性
通过以下数据格式属性,指定 bcp 数据文件中每个字段的结构:
文件存储类型
“文件存储类型” 说明数据在数据文件中的存储方式。 您可以将数据导出到数据文件中,格式可选为数据库表类型(本机格式)、字符表示形式(字符格式),或任何支持隐式转换的数据类型。 例如,你可以将 smallint 复制为 int。用户定义的数据类型会按其基类型导出。 更多信息请参见 “使用bcp指定文件存储类型”。
前缀长度
为了提供最紧凑的文件存储,用于将本地格式的数据批量导出到数据文件,每个
bcp字段前会加上一个或多个字符表示字段长度。 这些字符称为长度前缀字符。 欲了解更多信息,请参见 使用bcp指定数据文件中的前缀长度。字段长度
字段长度指示以字符格式表示数据时所要求的最大字符数。 如果数据以本机格式存储,则字段长度已知。 更多信息请参见 “使用bcp指定场长度”。
字段终止符
对于字符数据字段,可选的终止字符允许你在数据文件中标记每个字段的结尾(使用 字段终止符)和每行的结尾(使用 行终止符)。 终止符是为读取数据文件的程序提供的一种方法,用于指出一个字段或行的结束位置和另一个字段或行的开始位置。 有关详细信息,请参阅 “指定字段和行终止符”。
领域特定提示概述
如果你以交互方式运行 in,并使用 bcp 或 out 选项,但没有为源表或目标表中的每一列指定格式文件开关参数 (-f) 或数据格式开关参数(-n、-c、-w 或 -N),则 bcp 会依次提示输入上述每个属性。 在每个提示中,bcp都会根据表列的 SQL Server 数据类型提供默认值。 接受所有提示符的默认值,结果与在命令行中指定本地格式-n()相同。 每个提示都会显示一个用方括号括起来的默认值:[default]。 按回车键即可接受显示的默认选项。 若要指定与默认值不同的值,请在提示符下输入新值。
示例
以下示例使用 bcp 以交互方式将 HumanResources.myTeam 表中的数据批量导出到 myTeam.txt 文件。 在运行该示例之前,必须创建此表。 有关该表的信息及创建方法,请参见 HumanResources.myTeam 示例表。
该命令既不指定格式文件,也未指定数据类型,因此 bcp 会提示数据格式信息。 在 Windows 命令提示符下输入:
bcp AdventureWorks.HumanResources.myTeam out myTeam.txt -T
对于每一列,bcp 都会提示输入特定于字段的值。 以下示例显示了针对表中 EmployeeID 和 Name 两个字段的提示,并为每列提供了建议的默认文件存储类型(本机格式)。
Name列和EmployeeID列的前缀长度分别为0和2。 用户指定英文逗号 (,) 作为每个字段的终止符。
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]:,
.
.
.
对应的提示会根据需要按顺序显示在表格的各列中。
将字段逐字段数据存储在非XML格式文件中
在指定所有表格列后, bcp 提示你选择生成一个非XML格式的文件,存储你刚提供的逐字段信息(见前例)。 如果你选择生成格式文件,可以在导出该表数据或导入类似结构化数据到 SQL Server 时使用它。
注意
可以使用格式化文件将数据文件中的数据大容量导入到 SQL Server 的实例中,也可以使用格式化文件从表中大容量导出数据,而无需重新指定格式。 更多信息请参见 “格式化文件以导入或导出数据”。
以下示例创建一个名为 myFormatFile.fmt的非 XML 格式化文件:
Do you want to save this format information in a file? [Y/n] y
Host filename: [bcp.fmt]myFormatFile.fmt
格式文件的默认名称是 bcp.fmt,但你可以选择不同的文件名。
注意
对于使用单一数据格式(如字符或原生格式)的数据文件,您可以使用该 format 选项快速创建格式文件,无需导出或导入数据。 这种方法很简单,可以创建XML格式文件或非XML格式文件。 更多信息请参见 使用bcp创建格式文件。