我正在使用BULK INSERT
导入CSV文件。 CSV文件中的一列包含一些包含分数的值(例如1m½f
)。
我不需要对分数进行任何数学运算,因为这些值仅用于显示目的,因此我将列设置为nvarchar
。 BULK INSERT
有效,但当我在SQL中查看记录时,分数已被替换为分号(¢
),因此显示的文本为1m¢f
。
我很想知道为什么会这样,以及有关如何解决问题的任何想法。 BULK INSERT
命令是:
BULK INSERT dbo.temp FROM 'C:\Temp\file.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' );
答案 0 :(得分:44)
您需要BULK INSERT
使用CODEPAGE = 'ACP'
,它将字符串数据从Windows代码页转换为SQL Server代码页。
BULK INSERT dbo.temp FROM 'C:\Temp\file.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', CODEPAGE = 'ACP');