加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql server 2012快递不懂俄文字母

发布时间:2020-12-12 06:52:57 所属栏目:MsSql教程 来源:网络整理
导读:我有使用俄语文本的数据库但是当我运行查询时它会向我显示这个.数据库将由俄罗斯人使用,它必须正确显示俄语文本! 任何想法如何解决它?将来它将位于俄罗斯并使用俄语版SQL Server,但现在我正在使用英文版SQL 2012 Express. 这是表和insert语句: Create tabl
我有使用俄语文本的数据库但是当我运行查询时它会向我显示这个.数据库将由俄罗斯人使用,它必须正确显示俄语文本!

任何想法如何解决它?将来它将位于俄罗斯并使用俄语版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 22222','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前缀’或丢失数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读