问题:
我有一张桌子
CREATE TABLE BestTableEver
(
Id INT,
knownValue INT,
unknownValue INT DEFAULT 0,
totalValue INT DEFAULT 0);
我有这个CSV文件(Loki.csv)
Id, knownValue, unknownValue, totalValue
1, 11114
2, 11135
3, 11235
我想在表中进行批量插入,因为我还不知道unknownValue和totalValue的值,我希望它们采用默认值(如表创建中所定义)
到目前为止我的方法
create procedure populateLikeABoss
@i_filepath NVARCHAR(2048)
DECLARE @thor nvarchar(MAX)
SET @thor=
'BULK INSERT populateLikeABoss
FROM ' + char(39) + @i_filepath + char(39) +
'WITH
(
FIELDTERMINATOR = '','',
ROWTERMINATOR = ''\n'',
FIRSTROW = 2,
KEEPNULLS
)'
exec(@thor)
END
并调用程序进行魔术
populateLikeABoss 'C:\Loki.csv'
错误
批量加载数据转换错误(类型不匹配或无效字符 对于第2行,第2列(sizeOnMedia)。
的指定代码页
参考
使用批量插入保持NULL值
类似的问题没有我需要的答案
答案 0 :(得分:1)
我认为csv不是预期的格式。为了保持null,记录的每一行格式应为1, 11114,,
。其他选项是删除标题中的最后两列。