2

SQL Server 2008 db から次の文字をユニコードとして抽出しようとしています

文字はウムラウトでなければなりません

テーブルからのスキーマ情報は次のとおりです。

character_set_name    collation_name

iso_1                 SQL_Latin1_General_CP1_CI_AS

そして、ここに私のselectステートメントがあります

select 
    StudentName

from GenData.dbo.StudentInfo 
where StudentID = 105
order by studentname COLLATE SQL_Latin1_General_Pref_CP850_CI_AS

ただし、上記でも次のものが生成されます。

ö

私が間違っていることや、この文字を抽出する方法を誰かが知っていますか? あなたの助けをいただければ幸いです。

ありがとう

4

1 に答える 1

2

列を変更するとchar、今後の問題が解決するはずです。varcharnvarchar

ALTER TABLE MyTable ALTER COLUMN MyField nvarchar(1234)

SQL クエリで nvarchar を使用する場合は注意してください。

  'this is varchar'
  N'but this is nvarchar'

すでに歪められた情報を回復する限り、私の経験からすると、試行錯誤のプロセスは難しいことがよくあります。文字を varchar フィールドに入力し、その情報を使用してデータをスクラブしてみてください。

INSERT INTO #transpose
SELECT '' low, N'Ü' high
UPDATE #transpose SET low = high

Update MyTable 
SET MyFIELD = REPLACE(MyField, low, high) 
FROM MyTable 
CROSS JOIN #transpose
于 2012-11-14T23:05:09.590 に答える