我有一张排名为Thai_CI_AS
的表,它没有正确存储像à
这样的特殊字符。
存储à
时,它会呈现为问号:?
我已经通过将该表的排序规则更改为默认值latin *来解决了这个问题。
现在正确存储新数据(特殊字符)。
但旧数据仍会显示???
。
如何刷新或调用任何内容以使旧数据正确显示?
-----编辑-------
是否有一个SQL查询允许用户将所有?
更改为à
之类的其他内容?
实施例
?sometext?
??sometext??
?????
sometext??
然后全部转到
àsometextà
àsometextà
ààààà
sometextàà
谢谢你, 以下列是包含这些类型数据的列,
id_name1, id_name2, id_name3.
请帮忙。非常感谢你。
答案 0 :(得分:2)
我很遗憾地说,但你的旧数据已经消失了。我不认为这是因为整理;它可能是因为你这样做了:
INSERT dbo.table(column) SELECT 'à';
而不是使用N字符正确添加Unicode数据前缀:
INSERT dbo.table(column) SELECT N'à';
---- this is important ---------^
但同样,没有得到旧的数据......你甚至自己说过,当你在泰国整理下存储数据时,它显示?
- 这意味着数据从未在第一次正确存储地点(很可能是因为缺少N
)。
答案 1 :(得分:0)
如果此问题与您的previous question有关,则答案为是。
VARCHAR列仅包含单字节字符。在您的情况下,您应该将VARCHAR列更改为NVARCHAR,然后更改列的排序规则。