2011-04-02 170 views
0

我從給出的備份中將數據導入到表中。現在我意識到這個備份是用另一個排序規則從一個數據庫中進行的,因此我有無效字符,如├í而不是á用不同的編碼替換字符

我該如何替換這些字符?

我想這一點,但不工作:

UPDATE Table1 
SET Field1 = REPLACE(Field1, '├í', 'á') 

另外請注意,我沒有看到:├í,但我看到空方先於í

+0

您可以使用正確的排序規則從備份重新創建表嗎?或者你是否已經添加了新的數據?如果是這樣,你可能不得不從備份中重新創建表格,然後在恢復之後償還所有的查詢(不知道該怎麼做 - 詢問sysAdmin)。 – 2011-04-02 05:07:51

回答

1

你在哪裏「看不到├」,但[你]看到í前面有一個空方塊「?

Table1.Field1的數據類型是什麼?什麼是需要改變的Field1的一些行的二進制內容?什麼是field的整理,你可以找到

SELECT SQL_VARIANT_PROPERTY(Field1,'Collation') FROM Table1; 

這可能是因爲改變你的UPDATE語句以Unicode指定其內容很簡單:

UPDATE Table1 SET 
    Field1 = REPLACE(Field1, N'├í', N'á') 

或者,它可能不是。如果沒有,如果你發佈了你在SELECT CAST(Field1 AS VARBINARY(40))時得到的內容,或者任何長度都給出了完整的Field1內容,這將有所幫助。您可能需要在REPLACE表達式中應用排序規則。

+0

我已經從MySQL表中拉出數據,這些數據加載不正確。我詢問了原始腳本並將其轉換爲T-SQL,並且它像一個魅力一樣工作。謝謝你:) – PedroC88 2011-04-08 04:59:01

相關問題