基于SQL Server的CSV导入1)CSV文件数据可能具有,(逗号)中间(Ex:Description),那么如何使导入处理这些数据?
解
如果你用,(逗号)作为分隔符,就无法区分数据中的逗号作为字段终止符和逗号。我会用不同的FIELDTERMINATOR喜欢||..代码看起来很像,这将完美地处理逗号和单个斜杠。2)如果客户端从excel创建CSV,那么包含逗号的数据包含在" ... "(双引号)(如下例所示)那么导入如何处理这个问题呢?
解
如果使用BULK INSERT,则无法处理双引号,数据将用双引号插入到行中。将数据插入表后,可以将这些双引号替换为‘'.update tableset columnhavingdoublequotes = replace(columnhavingdoublequotes,'"','')3)如何跟踪某些行是否有错误的数据,哪些导入跳过?(导入是否跳过不可输入的行)?
解
若要处理由于数据或格式无效而未加载到表中的行,可以使用ERRORFILE性质,指定错误文件名,它将有错误的行写入错误文件。代码应该看起来像。BULK INSERT SchoolsTemp FROM 'C:\CSVData\Schools.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',', --CSV field delimiter
ROWTERMINATOR = '\n', --Use to shift the control to next row
ERRORFILE = 'C:\CSVDATA\SchoolsErrorRows.csv',
TABLOCK )