用bcp工具导入和导出批量数据(下)

 
   | |

导读:无论你用的是格式文件还是只运行基本命令,你现在都应该更好地了解到了如何使用bcp工具。记住bcp工具支持的switch比我所列举的要多得多。你可以在……

关键词:SQL Server bcp工具 导入和导出数据

正在加载数据... 【TechTarget中国原创】先前的例子表明,命令首先指定了目标表。而这一次表明后面为关键字format nul,表示bcp工具应该创建格式文件。-f参数用于指定格式文件的路径和文件名称,其后为switch。最后在你运行该命令时,就生成了包括SalesPeople表架构的格式文本。 【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  "\r\n"   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  "\r\n"   1  SalesPersonID   ""

你可以看到,列的顺序已经进行了修改,这一顺序就是它们在格式文件中的排列顺序。SalesPersonID列现在排在最后,并且以\r\n结尾。LastName列现在排在开头并且以逗号结尾。

修改、保存格式文件后,准备在bcp命令中用了。下面的例子说明如何调用格式文件:

bcp AdventureWorks.dbo.SalesPeople in C:\Data\SalesPeople.txt -f C:\Data\SalesPeople.fmt –T

注意,你从SalesPeople.txt文件中导入数据时,还必须用到-f switch调用格式文件。还要注意到你现在已经不需要包括-t 和-c switch,因为现在在格式文件中已经包括了这些信息。

无论你用的是格式文件还是只运行基本命令,你现在都应该更好地了解到了如何使用bcp工具。记住bcp工具支持的switch比我所列举的要多得多。你可以在《SQL Server联机从书》上了解更多有关bcp工具的信息。同时,本技巧还提供了有关启用bcp工具、轻松将数据导入到SQL Server表以及导出数据到文本文件的比较充足的信息。

 
查看全文
 
 
 
 
 

SQL Server数据库设计与建模

 
如果把商业现货(COTS)数据建模工具与定制的数据建模应用相比,会发现它们在数据建模方面有很大的差别。
 
使用SQL Server Analysis Services MDX语句,可以很容易地实现像这种具有父子维关系类型的层次结构。
 
SQL Server 2005 中的父子维,解决了如何处理在一个表当中一些记录与本表中其它记录相关联的这样一个常见业务问题。
 
一个范围标记了刻度的一个特定区域,它有助于突出特定的值。例如,在一个间隔为1到10的刻度中,我们可能会考虑添加一个从8到10的范围来突出这些目标数值。
 
现在,双子星项目已经更名为Microsoft PowerPivot,DBA及开发人员可以将目光再转向另外一个SQL Server 2008 R2的功能:Project Madison。
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录