无法在包含Unicode字符表SQL中使用SELECT

时间:2017-05-18 17:12:52

标签: sql sql-server unicode bulkinsert string-conversion

我使用批量插入从文本中导入数据:

BULK INSERT dbo.Infosp1 FROM  'D:\test.txt' WITH ( FIELDTERMINATOR =',', ROWTERMINATOR  ='\n', DATAFILETYPE='widechar')

这是我的'D:\ test.txt'(由Endcoding:Unicode保存):

  

BácHồng,GIA,3

     

BácHồng,禅师,2

     

BácHồng,Lơxanh,3

     

BácHồng,XA,3

     

BácHồng,的Ngao,5

     

BácHồng,Bắptàu,5

     

CôHòaBính,GIA,5

     

CôHòaBính,Càrốt,2

     

CôHòaBính,筝,2

---->This is my table. Click to show image

为什么使用INSERT显示0结果??????:

SELECT * FROM dbo.Infosp1 WHERE Khach = 'BácHồng' 

SELECT * FROM dbo.Infosp1 WHERE Khach = 'CôHòaBính'

---我认为转换数据类型存在一些问题,因为通过Endcoding保存这个'D:\ test.txt':ANSI有一些错误,如:

  

BácH?ng,CôH?aBính。在其他情况下,当我的字段没有错误类型时,我可以使用SELECT来显示所有结果。我希望有一个解决方案可以使它工作。

1 个答案:

答案 0 :(得分:2)

尝试将N添加到SQL Server中的unicode字符串文字:

SELECT * FROM dbo.Infosp1 WHERE Khach = N'BácHồng' 

SELECT * FROM dbo.Infosp1 WHERE Khach = N'CôHòaBính'

<小时/> 例如:

create table Infosp1 (Khach nvarchar(64), FirstName nvarchar(64), SomeNumber int)
insert into Infosp1 values 
 (N'BácHồng',N'Giá',3)
,(N'BácHồng',N'Hành',2)
,(N'BácHồng',N'Lơxanh',3)
,(N'BácHồng',N'Xả',3)
,(N'BácHồng',N'Ngao',5)
,(N'BácHồng',N'Bắptàu',5)
,(N'CôHòaBính',N'Giá',5)
,(N'CôHòaBính',N'Càrốt',2)
,(N'CôHòaBính',N'Chanh',2)

SELECT 'WithN' as WithOrWithoutN, * FROM dbo.Infosp1 WHERE Khach = N'BácHồng'   
union all
SELECT 'WithoutN',* FROM dbo.Infosp1 WHERE Khach = 'BácHồng'   
union all 
SELECT 'WithN', * FROM dbo.Infosp1 WHERE Khach = N'CôHòaBính'  
union all
SELECT 'WithoutN',* FROM dbo.Infosp1 WHERE Khach = 'CôHòaBính' 

rextester演示:http://rextester.com/WSNNX6950

返回:

+----------------+-----------+-----------+------------+
| WithOrWithoutN |   Khach   | FirstName | SomeNumber |
+----------------+-----------+-----------+------------+
| WithN          | BácHồng   | Giá       |          3 |
| WithN          | BácHồng   | Hành      |          2 |
| WithN          | BácHồng   | Lơxanh    |          3 |
| WithN          | BácHồng   | Xả        |          3 |
| WithN          | BácHồng   | Ngao      |          5 |
| WithN          | BácHồng   | Bắptàu    |          5 |
| WithN          | CôHòaBính | Giá       |          5 |
| WithN          | CôHòaBính | Càrốt     |          2 |
| WithN          | CôHòaBính | Chanh     |          2 |
| WithoutN       | CôHòaBính | Giá       |          5 |
| WithoutN       | CôHòaBính | Càrốt     |          2 |
| WithoutN       | CôHòaBính | Chanh     |          2 |
+----------------+-----------+-----------+------------+