2012-07-25 30 views
1

我有一張表,其中有一個Thai_CI_AS的排序規則,它沒有正確存儲特殊字符如à。 當存儲à它被呈現爲一個問號:?Unicode數據丟失 - 由於排序規則改變?

我已經通過更改表的排序規則的默認設置,拉丁語*解決了這個問題。

現在正在正確存儲新數據(特殊字符)。

但舊數據仍顯示???

如何更新或調用舊數據以正確顯示?

-----編輯-------

是否有一個SQL查詢,允許一個所有?更改爲其他類似à

?sometext? 
??sometext?? 
????? 
sometext?? 

,把所有

àsometextà 
àsometextà 
ààààà 
sometextàà 

謝謝 以下的列包含這些類型的數據的的一個,

id_name1, id_name2, id_name3. 

請幫助。非常感謝你。

回答

2

我很抱歉地說,但您的舊數據已消失。我不認爲這是由於整理;這可能是因爲你這樣做:

INSERT dbo.table(column) SELECT 'à'; 

而不是正確的前綴與N字的Unicode數據:

INSERT dbo.table(column) SELECT N'à'; 
---- this is important ---------^ 

但同樣,沒有讓舊數據回...你竟然說你自己,當你在泰國整理下存儲數據時,它顯示? - 這意味着數據從未正確存儲在第一位(很可能是因爲缺少N)。

+0

我明白了。不過謝謝。任何建議,我想只是將所有'?'改爲別的?謝謝。 – nambla 2012-07-25 19:08:17

+0

喜歡而不是問號將所有列上的所有問號都設爲à?示例某列包含'?sometext?'有'''我想將其更改爲'àsometextà'和'àààà'。 – nambla 2012-07-25 19:09:07

+0

@ user1543644你認爲你桌子上的每個問號都應該是「à」嗎?任何人都不能使用其他「特殊字符」?在句子末尾真正的問號怎麼樣? – 2012-07-25 19:11:59

0

如果此問題與您的previous question相關,那麼答案爲是。

VARCHAR列只保存單字節字符。在你的情況下,你應該將VARCHAR列更改爲NVARCHAR,然後更改列的排序規則。

+0

你好,謝謝你的回答,但一切都還在嗎?做完你所說的話之後。但我想我會手動修改所有的'?':) – nambla 2012-07-25 19:17:55