当用户在数据库中插入俄语单词如“пример”时,数据库会将其保存为“ ??????”。如果他们以'N'字母插入,或者我以'N'字母选择,即; exec Table_NameN'иытание'没问题。但是我不想在每个查询中都使用'N',所以对此有什么解决方案吗?我将使用存储过程。
更新:
现在,我可以使用带有排序规则的俄语字母。但是我无法更改每种语言的排序规则,我只想了解在文本添加后是否有任何触发器或函数可以在文本前面自动添加N。 IE浏览器;当我插入'пример'时,SQL应该自动将其取为N'пример'。
最佳答案
您必须使用列的数据类型NVARCHAR
插入unicode字母,插入时也必须使用N'value'
。
您可以通过以下方式对其进行测试:
CREATE TABLE #test
(
varcharCol varchar(40),
nvarcharCol nvarchar(40)
)
INSERT INTO #test VALUES (N'иытание', N'иытание')
SELECT * FROM #test
输出值
varcharCol nvarcharCol
??????? иытание
如您所见,数据类型
varchar
的列返回问号??????
,数据类型nvarchar
的列返回俄语字符иытание
。更新
问题是您的数据库排序规则不支持俄语字母。
在对象资源管理器中,连接到SQL Server数据库引擎的实例,展开该实例,然后展开数据库。
右键单击所需的数据库,然后单击“属性”。
单击选项页面,然后从排序规则中选择一种排序规则
下拉列表。
完成后,单击“确定”。
MORE INFO
关于sql - 在SQL中选择西里尔字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32350950/