先前的例子表明,命令首先指定了目标表。而这一次表明后面为关键字format nul,表示bcp工具应该创建格式文件。-f参数用于指定格式文件的路径和文件名称,其后为switch。最后在你运行该命令时,就生成了包括SalesPeople表架构的格式文本。
下面的数据显示上述命令生成的SalesPeople.fmt格式文本内容: 10.0 3 1 SQLCHAR &……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
先前的例子表明,命令首先指定了目标表。而这一次表明后面为关键字format nul,表示bcp工具应该创建格式文件。-f参数用于指定格式文件的路径和文件名称,其后为switch。最后在你运行该命令时,就生成了包括SalesPeople表架构的格式文本。
下面的数据显示上述命令生成的SalesPeople.fmt格式文本内容:
10.0 3 1 SQLCHAR 0 12 "," 1 SalesPersonID "" 2 SQLCHAR 0 100 "," 2 FirstName SQL_Latin1_General_CP1_CI_AS 3 SQLCHAR 0 100 "rn" 3 LastName SQL_Latin1_General_CP1_CI_AS |
文件(10.0)第一行确定了目前使用的bcp版本。第二行(3) 确定了表中的列数,接下来的三行为列的相关信息:
* 第一个域为列在源文件中出现的顺序。
* 第二个域显示每个列的源文件数据类型。因为在生成文件时指定了–c switch,在从数据文件中提取时,所有的域都用字符型数据类型。插入数据时,SQL Server会将数据转换到正确的类型。
*第三个域表示域的前缀长度,SQL Server通常会用它来提供最紧凑的文件存储。在创建格式文件时如果你指定-c switch,那么就会自动用到0。
* 第四个域代表特殊域数据类型字节长度。
* 第五个域表明如何终止行和列。由于在创建格式文件时用了-t switch,源文件的域值就必须通过逗号终止。
* 第六个域映射这些列在SQL Server表中的排列顺序。
*第七个和最后一个域提供了SQL Server表中字符列的整理信息。
要用格式文件将数据导入SalesPeople表中,我们必须如下修改文件:
10.0 3 1 SQLCHAR 0 100 "," 3 LastName SQL_Latin1_General_CP1_CI_AS 2 SQLCHAR 0 100 "," 2 FirstName SQL_Latin1_General_CP1_CI_AS 3 SQLCHAR 0 12 "rn" 1 SalesPersonID "" |
你可以看到,列的顺序已经进行了修改,这一顺序就是它们在格式文件中的排列顺序。SalesPersonID列现在排在最后,并且以rn结尾。LastName列现在排在开头并且以逗号结尾。
修改、保存格式文件后,准备在bcp命令中用了。下面的例子说明如何调用格式文件:
bcp AdventureWorks.dbo.SalesPeople in C:DataSalesPeople.txt -f C:DataSalesPeople.fmt –T |
注意,你从SalesPeople.txt文件中导入数据时,还必须用到-f switch调用格式文件。还要注意到你现在已经不需要包括-t 和-c switch,因为现在在格式文件中已经包括了这些信息。
无论你用的是格式文件还是只运行基本命令,你现在都应该更好地了解到了如何使用bcp工具。记住bcp工具支持的switch比我所列举的要多得多。你可以在《SQL Server联机从书》上了解更多有关bcp工具的信息。同时,本技巧还提供了有关启用bcp工具、轻松将数据导入到SQL Server表以及导出数据到文本文件的比较充足的信息。
翻译
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。
-
如何在Azure部署时选择合适的SQL Server?
想要在Azure上运行SQL Server,企业一般会面临两种选择:在Azure虚拟机上安装SQL Server或使用Azure SQL Database。
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。