SQL 2008批量插入&可变长度记录

时间:2012-08-29 12:53:45

标签: sql-server-2008 csv import

我遇到了2008和Bulk Insert的问题。我无法使用可变长度记录(特别是标题)来表现。

给出以下文件行:


  • 1,2,3,4,5,6,7,9,10
  • 1,2,3,4,5,6,7,9,10,1,2,3,4,5,6,7,9,10
  • 1,2,3,4,5,6,7,9,10,1,2,3,4,5,6,7,9,10
  • 1,2,3,4,5,6,7,9,10,1,2,3,4,5,6,7,9,10
  • 1,2,3,4,5,6,7,9,10,1,2,3,4,5,6,7,9,10
  • 1,2,3,4,5,6,7,9,10,1,2,3,4,5,6,7,9,10
  • 1,2,3,4,5,6,7,9,10,1,2,3,4,5,6,7,9,10
  • 1,2,3,4,5,6,7,9,10,1,2,3,4,5,6,7,9,10
  • 1,2,3,4,5,6,7,9,10,1,2,3,4,5,6,7,9,10
  • 1,2,3,4,5,6,7,9,10,1,2,3,4,5,6,7,9,10

以下不应该像导入数据一样有用吗?而不是返回一个空表,如果FirstRow小于2,则会出错?

我不记得导入和SQL 2000存在很多问题。


   drop table #data

   create table #data
   (    
    a int null, b int null
    ,c int null, d int null
    ,e int null, f int null
    ,g int null, h int null
    ,i int null, j int null
    ,k int null, l int null
    ,m int null, n int null
    ,o int null, p int null
    ,q int null, r int null
    ,s int null, t int null
   ) 
   truncate table #data

   bulk insert #data 
   from 'd:\temp\data.txt'
   WITH(
     TABLOCK
    ,CODEPAGE='RAW'
    ,DATAFILETYPE='char'
    ,FIELDTERMINATOR=','
    ,ROWTERMINATOR='\r\n'
    ,FIRSTROW=2
    )

   select * from #data

忘了提,我试过SSIS但没有区别......显然我可能使用了错误的组件。

哦,我可以在那里得到99%,批量插入除了第二排之外的所有东西:(但这对任何人都没用!

2 个答案:

答案 0 :(得分:0)

您可以使用SQL Server Integration Service (SSIS)代替使用批量复制将文本文件转换为sql server表。

答案 1 :(得分:0)

您可以使用DTS向导

非常简单,这里给出了dts路径

http://sqlcopy.blogspot.in/2012/07/bulk-sql-to-sql-sql-to-csv-csv-to-sql.html