【问题标题】:SQL Server columns to support multilingual collation / charactersSQL Server 列支持多语言排序规则/字符
【发布时间】:2017-05-17 15:31:26
【问题描述】:

我有一个默认排序规则 Latin1_General_CI_AS 的 SQL Server 数据库。 我表的列是nvarcharntext 数据类型。

该数据库适用于可以多语言的网站,必须至少支持波兰语、英语,然后还支持乌克兰语和法语。

我什至很难让它接受波兰语字符。对于nvarchar/ntext 类型的列,我可以手动更改数据库中的字符串以使用波兰语特殊字符,但在使用insertUPDATE 语句时,特殊字符的重音将被去除。

例如。

INSERT INTO Some_Table 
VALUES( 7, 'aśęóń', 'ąćł', 0.1, 1)

这最终在INSERTUPDATE 的第二列和第三列中是“aseón”和“acl”,因此会丢失原始字符。

我尝试设置不同的排序规则,但即使该字段有 Polish_CS_AS,它也不接受插入/更新时的波兰字符。

如何让数据库接受不同的语言字符?

【问题讨论】:

  • 你应该使用VALUES( 7, N'aśęóń', N'ąćł', 0.1, 1)(并且,你应该停止使用ntext,而使用`nvarchar(max))
  • 在像INSERT INTO Some_Table VALUES( 7, N'aśęóń', N'ąćł', 0.1, 1)这样的插入时尝试在列中添加N前缀
  • 谢谢大家,现在可以正常使用了。
  • ntexttextimage 数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)varchar(max)varbinary(max)See details here

标签: sql-server internationalization multilingual collation polish


【解决方案1】:

试试:

INSERT INTO Some_Table VALUES( 7, N'aśęóń', N'ąćł', 0.1, 1) 如果您已经将相应的列设置为 NVARCHAR 并且您尝试插入的值的总数等于您的表中的值,因为您没有指定需要插入哪些列。

【讨论】:

    猜你喜欢
    • 2011-02-11
    • 1970-01-01
    • 2011-01-02
    • 2014-06-22
    • 2013-09-26
    • 1970-01-01
    • 2018-06-30
    • 2011-12-08
    • 1970-01-01
    相关资源
    最近更新 更多