我有一个数据库(SQL server express 2008),它有一个定义为文本的列。当我们尝试存储一些中文文本时,它不会被保存。我读到该字段应该是ntext。我现在必须转换到我的表以将列创建为ntext。
我是否必须对设置为Latin的数据库进行整理?
JD
答案 0 :(得分:8)
您需要将列更改为NTEXT或NVARCHAR(MAX)。
排序仅涉及排序顺序,索引和比较。如果只存储中文数据,则可以使用Chinese_PRC_90_CI_AI或相关的排序规则。
第一条评论后更新:
对于NVARCHAR(和NTEXT),排序规则设置不会影响存储数据的方式。正如我之前所说,它会影响比较和排序。
如果您知道某个字段中会有中文数据,最好使用中文排序规则。 (我刚刚在搜索中文字符时遇到了一些问题,因为在一些校对中,某些字符等于标点字符)
如果知道您正在搜索其他语言的数据,您仍然可以使用比较中的COLLATE子句或ORDER BYs来更改排序规则
答案 1 :(得分:1)
确保您更改devio建议的列类型,并更改处理该表的任何存储过程的参数类型。如果你有一个字段是NTEXT但存储的proc参数是TEXT,它将不会保留这些值。