批量导入SQL的BCP格式文件编辑

时间:2013-02-23 17:13:30

标签: sql sql-server csv bulkinsert

我正在尝试将CS​​V文件中包含的大量数据导入SQL数据库。 CSV的大小为4g。 CSV有329列和300,000多行数据。到目前为止,我已经成功创建了数据库和表,一旦导入就会保存数据。数据包含字符串(VARCHAR(x),数字(INT)和日期(DATE)。

CSV文件中包含的数据由分隔符“,”分隔,但所有数据字段都用双引号括起来,有些字段不包含数据值。下面是数据的模拟示例。

“123244234”,“09/12/2012”,“名字”,“姓氏”,“地址1”,“”,“”,“555-555-5555”,“”,“CountryCode”

在研究中,我确定导入数据的最简单方法是使用BCP创建格式文件,然后将其与BULK INSERT一起使用。唯一可能是格式化格式文件以删除双引号。当尝试导入没有格式文件时,它在第一行失败,因为第一列第一行是数字并且在它周围有“”。

我查看了以下链接,该链接讨论了如何使用虚拟条目删除引号来删除双引号“http://support.microsoft.com/default.aspx?scid=kb;EN-US;132463”。在这种情况下,这是很多手动编辑。有谁知道编辑格式文件的更好方法?以下是格式文件的示例:

10.0
329
1       SQLCHAR             0       12      ","     1     NPI                            ""
2       SQLCHAR             0       12      ","     2     Entity Type Code               ""
3       SQLCHAR             0       12      ","     3     Replacement NPI                ""
4       SQLCHAR             0       9       ","     4     Employer Identification Number (EIN)                    SQL_Latin1_General_CP1_CI_AS
5       SQLCHAR             0       70      ","     5     Provider Organization Name (Legal Business Name)           SQL_Latin1_General_CP1_CI_AS
6       SQLCHAR             0       35      ","     6     Provider Last Name (Legal Name)                           SQL_Latin1_General_CP1_CI_AS
7       SQLCHAR             0       20      ","     7     Provider First Name                         SQL_Latin1_General_CP1_CI_AS
8       SQLCHAR             0       20      ","     8     Provider Middle Name                         SQL_Latin1_General_CP1_CI_AS
9       SQLCHAR             0       5       ","     9     Provider Name Prefix Text               SQL_Latin1_General_CP1_CI_AS
10      SQLCHAR             0       5       ","     10    Provider Name Suffix Text

0 个答案:

没有答案