2012-02-01 139 views
0

我在Lithuanian_100_CI_AS排序規則的數據庫中有表。有些行的文本字段包含文本,其中包含隨機符號而不是立陶宛文。是否有可能改變編碼,我會看到我需要的字母?更改排序規則完全沒有。MS SQL Server 2008編碼

+2

可能不是。如果插入不正確,數據將會丟失。我假設數據庫的默認排序規則是立陶宛以外的其他規則嗎?在這種情況下,在插入字符串文字時使用'N'前綴來避免將它強制轉換爲數據庫默認排序規則的代碼頁。 – 2012-02-01 14:26:14

+0

文字或ntext? (不應該使用它) – gbn 2012-02-01 15:00:18

+0

對於這些表中的所有文本字段,我使用NVARCHAR(256),因爲這些字符串不是很長。數據庫整理是Lithuanian_100_CI_AS。問題是數據是從編碼錯誤的CSV導入的。我無法重新導入數據。 – JNM 2012-02-01 18:19:34

回答

0

如果你有這樣的數據(操縱),那麼你不能通過改變排序規則來保存它,但是如果你設置了正確的排序規則,這可以幫助你將數據以正確的方式寫入數據庫(與未來更相關)

0

不,數據是隨機的。

您需要

  • 使用nvarchar的存儲這一數據的正確
  • 確保客戶機使用爲nvarchar的參數
  • 確保所有的字符串常量有N個在前面(例如:N'foobar'

排序規則不是編碼:它僅確定字符串和比較/運動方式,但確定非Unicode(unicode = nvarchar)列的代碼頁

請注意,SQL Server中的data types "text" and "ntext" are deprecated。使用最大類型