我有使用俄语文本的数据库但是当我运行查询时它会向我显示这个.数据库将由俄罗斯人使用,它必须正确显示俄语文本!
任何想法如何解决它?将来它将位于俄罗斯并使用俄语版sql Server,但现在我正在使用英文版sql 2012 Express.
这是表和insert语句:
Create table Employee ( EmpID int not null IDENTITY (10,1),StrName nvarchar (25) not null,Phone1 nvarchar (25) not null,Phone2 nvarchar (25) Primary Key (EmpID),); insert into Employee (LastName,FirstName,Phone1,Phone2) values ('Иванов','111 111 11111','111 111 1111');
解决方法
您确定数据已正确存储在数据库中吗?你怎么知道的?
确保该列具有正确的排序规则,它被定义为nvarchar,并且字符串文字的插入以N为前缀.例如,这些不一样:
INSERT dbo.table(column) SELECT 'foo'; INSERT dbo.table(column) SELECT N'foo';
举个例子:
USE tempdb; GO CREATE TABLE dbo.foo ( ID INT PRIMARY KEY,bar NVARCHAR(32) COLLATE sql_Ukrainian_CP1251_CI_AS ); INSERT dbo.foo SELECT 1,'АБВГДЕЖЅZЗИІКЛ'; INSERT dbo.foo SELECT 2,N'АБВГДЕЖЅZЗИІКЛ'; SELECT ID,bar FROM dbo.foo; GO DROP TABLE dbo.foo;
结果:
ID bar ---- -------------- 1 ????????Z????? 2 АБВГДЕЖЅZЗИІКЛ
要显示这会如何影响您的insert语句,您的字符串将缺少N前缀:
SELECT CONVERT(NVARCHAR(32),'Иванов'),CONVERT(NVARCHAR(32),N'Иванов');
结果:
------ ------ ?????? Иванов
因此,在Unicode字符串前加上N’a前缀’或丢失数据.
原文地址:https://www.jb51.cc/mssql/77532.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。