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

MrM*_*att 24 sql nvarchar bulkinsert sql-server-2012

我正在使用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' );
Run Code Online (Sandbox Code Playgroud)

Aar*_*and 45

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

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

  • 谢谢@aaron bertrand。它部分对我有用。我在插入重音字符时遇到问题。例如:ä 显示为 ä (2认同)