1)我可以将CSV文件中的BulkInsert执行到表中,以使该表具有不在CSV中的标识列,并自动分配吗?
2)是否有任何规则表明我要BulkInsert进入的表,必须按照与正在读取的平面文件相同的顺序使用相同的列?
这就是我想要做的。包含所有内容的字段太多......
BULK INSERT ServicerStageACS
FROM 'C:\POC\DataFiles\ACSDemo1.csv'
WITH (FORMATFILE = 'C:\POC\DataFiles\ACSDemo1.Fmt');
GO
SELECT * FROM ServicerStageACS;
错误:
Msg 4864,Level 16,State 1,Line 3批量加载数据转换错误 (为指定的代码页键入不匹配或无效字符) 第1行,第1列(rowID)。
我很确定错误是因为我有身份。
FMT就像这样开始:
9.0
4
1 SQLCHAR 0 7 "," 1 Month SQL_Latin1_General_CP1_CI_AS
2 SQLCHAR 0 100 "," 2 Client SQL_Latin1_General_CP1_CI_AS
答案 0 :(得分:2)
一位同事建议将批量插入更容易放入视图中。视图不包含标识字段或任何其他不加载的字段。
truncate table ServicerStageACS
go
BULK INSERT VW_BulkInsert_ServicerStageACS
FROM 'C:\POC\DataFiles\ACSDemo1.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
SELECT * FROM ServicerStageACS;