bcp 汇出与汇入


    参考:bcp 公用程序

上一篇文章【bcp 备份所有数据表】介绍利用 bcp 批次会出数据表,这次介绍利用 bcp 汇入数据的动作。

使用 bcp 汇出:

   1:  DECLARE @cmd varchar( 2000 )   2:  SELECT @cmd = 'bcp SchemaName.DBName.[TableName] out "c:\tablename.txt" -c -T -t "," -r "\n"'   3:  EXEC master..xp_cmdshell @cmd


out [filename] 表示要汇出至某个档案
-t "," 表示使用 , 来当分隔符 (预设使用 Tab \t 来当分隔符)

使用 bcp 汇入:

   1:  DECLARE @cmd varchar( 2000 )   2:  SELECT @cmd = 'bcp SchemaName.DBName.[TableName] in "c:\tablename.txt" -c -T -t "," -r "\n"'   3:  EXEC master..xp_cmdshell @cmd


其实就是把 bcp 指令中的 out 改为 in,就表示从档案将数据汇入数据表。

或是使用 BULK INSERT 指令也可以进行大量汇入的动作:

   1:  BULK INSERT SchemaName.DBName.[TableName]   2:  FROM 'c:\tablename.txt'   3:  WITH (   4:    BATCHSIZE = 1000,   5:    FIELDTERMINATOR = ',',   6:    ROWTERMINATOR = '\n',   7:    TABLOCK   8:  )


另参考: BULK INSERT Performance by Jeffrey

可能发生错误处理 by LOLOTA :

FIX: 当您在 Microsoft SQL Server 2005 执行 BULK INSERT 陈述式错误讯息: " The 大量加载失败。 数据行是针对 <n>, <n> 个数据行数据列将数据文件中的 " 太长
http://support.microsoft.com/kb/942660/zh-tw
  
PRB: SQL Server 连结到远程数据库失败并 7399 错误
http://support.microsoft.com/kb/241267/zh-tw
  
在 SQL Server 2005 使用 BULK INSERT 陈述式, 将在大量数据时, FIX: 您收到错误讯息
http://support.microsoft.com/kb/935446/zh-tw

 


  相关链接:
        北京网站建设    网站制作    网站制作套餐    网站维护    网站改版    网站推广    搜索引擎优化
        SEO建站    企业邮箱        虚拟主机    域名购买