BULK INSERT后特殊字符显示不正确

时间:2012-12-21 20:43:05

标签: sql sql-server-2012 bulkinsert nvarchar

我正在使用BULK INSERT导入CSV文件。 CSV文件中的一列包含一些包含分数的值(例如1m½f)。

我不需要对分数进行任何数学运算,因为这些值仅用于显示目的,因此我将列设置为nvarcharBULK INSERT有效,但当我在SQL中查看记录时,分数已被替换为分号(¢),因此显示的文本为1m¢f

我很想知道为什么会这样,以及有关如何解决问题的任何想法。 BULK INSERT命令是:

BULK INSERT dbo.temp FROM 'C:\Temp\file.csv' 
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' );

1 个答案:

答案 0 :(得分:44)

您需要BULK INSERT使用CODEPAGE = 'ACP',它将字符串数据从Windows代码页转换为SQL Server代码页。

BULK INSERT dbo.temp FROM 'C:\Temp\file.csv' 
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', CODEPAGE = 'ACP');