我正在使用 XML 格式文件导入 CSV 文件,并且第一个数据行被跳过。我不知道为什么。
格式化文件
<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR='","' />
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR='\n' />
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="COLUMN1" xsi:type="SQLVARYCHAR" />
<COLUMN SOURCE="2" NAME="COLUMN2" xsi:type="SQLVARYCHAR" />
</ROW>
</BCPFORMAT>
CSV
COLUMN1,COLUMN2
"ABC","ABC123456"
"TNT","TNT123456"
询问
SELECT *
FROM OPENROWSET(BULK 'C:\sample.csv',
FORMATFILE='C:\sample.xml',
FIRSTROW = 2) AS a
结果
COLUMN1 COLUMN2
------- ----------
"TNT TNT123456"
(1 row(s) affected)
如果FIRSTROW
改为1
,结果变为:
COLUMN1 COLUMN2
--------------------- ----------
COLUMN1,COLUMN2 "ABC ABC123456"
"TNT TNT123456"
如果标题行从 CSV 中删除并FIRSTROW
更改为1
,则结果按预期返回:
COLUMN1 COLUMN2
------- ----------
"ABC ABC123456"
"TNT TNT123456"
由于这是一个带有标题的自动报告,是否有任何其他选项可以解决这个问题?