【发布时间】:2016-12-06 14:54:41
【问题描述】:
我正在使用 SQL Server 2014。我想在我的数据库中使用阿姆哈拉语。数据库的默认排序规则是 Latin1_General_CP1_CI_AS。我将其更改为Latin1_General_CI_AS。两者都不显示阿姆哈拉语字符。它们在键入时显示字符,但在提交时它们变为问号。
我应该使用什么排序规则或者我缺少什么?
【问题讨论】:
标签: sql-server sql-server-2014 collation
我正在使用 SQL Server 2014。我想在我的数据库中使用阿姆哈拉语。数据库的默认排序规则是 Latin1_General_CP1_CI_AS。我将其更改为Latin1_General_CI_AS。两者都不显示阿姆哈拉语字符。它们在键入时显示字符,但在提交时它们变为问号。
我应该使用什么排序规则或者我缺少什么?
【问题讨论】:
标签: sql-server sql-server-2014 collation
我认为您的问题可能不在排序规则中。
尝试使用UNICODE 数据类型,例如 NCHAR 和 NVARCHAR,您会看到已保存的字符。
排序仅用于排序和比较。查看排序规则列表并选择最合适的排序规则。
最初,您并没有告诉您正在使用全文搜索。这要求您使用关键字LANGUAGE 和您的语言名称。但是,支持的语言只有 53 种(请参阅sys.fulltext_languages),而amharic 不存在。
您只能选择使用the neutral word breaker 重新创建全文目录,然后重新填充它。然后至少它会通过空格和标点符号识别单词。
查看更多详情:https://msdn.microsoft.com/en-us/library/ms142509.aspx?f=255&MSPPError=-2147217396
【讨论】:
您可以按照MSDN上的步骤操作:
SQL Server 设置中的默认排序规则
在“控制面板”中,在“高级”中找到 Windows 系统区域设置名称 区域和语言选项中的选项卡。在 Windows Vista 中,使用 格式”选项卡。下表显示了相应的排序规则 将排序规则设置与现有 Windows 匹配的指示符 语言环境:
因此您必须使用控制面板更改设置才能看到结果。
【讨论】:
一个简单的谷歌搜索将我带到this list of collations, most of them started with SQL Server 2008R2。
您的排序规则应该是 Latin1_General_100_
更多提示:
SQL Server 有一个默认排序规则,它是所有新数据库的标准排序规则,并且 - 非常重要!!! - 临时数据库的标准排序规则。
最好 - 如果这对您有用 - 使用适当的排序规则安装 SQL Server。
SQL Server 也允许在数据库级别定义默认排序规则。但是,如果您使用CREATE TABLE #table 并使用WHERE、ORDER BY、GROUP BY 或JOIN(任何比较...)使用字符字段,这可能会导致严重的麻烦...
最后但同样重要的是,您也可以在语句级别定义排序规则。这意味着大量的打字和相当难以阅读的代码,但提供了最好的控制......
如何显示查询的输出是一个不同的问题。这是输出窗口(或您用来显示查询值的任何其他程序......)的问题。在这种情况下,可能需要使用适当的编码和字符集。这取决于您使用的工具...
【讨论】: