当用户在数据库中插入俄语单词如“锌褉松弛屑械Russian”时,数据库将其保存为“ ??????”。如果他们以’N’字母插入,或者我以’N’字母进行选择,即;exec Table_Name N’没有问题。但是我不想在每个查询中都使用“ N”,因此对此有什么解决方案吗?顺便说一下,我将使用存储过程。
更新:
现在,我可以使用带有排序规则的俄语字母。但是我无法更改每种语言的排序规则,我只想了解在添加文本之后是否有任何触发器或函数可以在文本前面自动添加N。IE; 当我插入’锌褉松弛屑械褉’时,SQL应该自动使它像N’锌褉松弛屑械褉’。
您必须使用列的数据类型NVARCHAR来插入unicode字母,插入时也必须使用N'value'。
NVARCHAR
N'value'
您可以通过以下方式对其进行测试:
CREATE TABLE #test ( varcharCol varchar(40), nvarcharCol nvarchar(40) ) INSERT INTO #test VALUES (N'懈褘褌邪薪懈械', N'懈褘褌邪薪懈械') SELECT * FROM #test
输出
varcharCol nvarcharCol ??????? 懈褘褌邪薪懈械
如您所见,数据类型的列varchar返回问号??????,数据类型的列nvarchar返回俄语字符懈褘褌邪薪懈械。
varchar
??????
nvarchar
懈褘褌邪薪懈械
更新
问题是您的数据库排序规则不支持俄语字母。
[**MORE INFO**](https://msdn.microsoft.com/en- us/library/ms175835.aspx?f=255&MSPPError=-2147217396)