2017-01-06 15 views
2

私は2つのカラムを持つテーブルを持っています。SQL Serverのvarcharカラムに添字の値を挿入します


ID:番号、 名:VARCHAR(50)


は、私が添字として酸素(O2)名前フィールド、2の値を挿入します。 私が挿入しているとき、それを添字値として保存することはできません。

解決方法の1つは、名前のデータ型をnvarcharに変更することです。 しかし、私はより良い解決策を探しているので、私はテーブルを変更する必要はありません。

+1

Unicode文字は 'nvarchar'に格納されています。例:Symbols、Hindi、Chinese charactersなど – Arshad

答えて

0

char/varcharフィールドには、ASCIIと拡張ASCIIのみが使用できると思います。 しかし、nchar/nvarcharを使用すると、任意の文字を使用できます。

0

列をnvarchar(50)に変更することをお勧めします。

varchar(50)を使用すると、表示可能な文字セットは照合によって異なります。一般に、照合によって、ソート順が意味される。 ØOと一緒にソートするか、またはZの後に別の文字としてソートします。これはÅよりも前または後であります。しかし、この照合は、基礎となる文字セット(表現可能な文字セット)とも関連しています。

select TABLE_CATALOG, TABLE_NAME, COLUMN_NAME, 
    DATA_TYPE, CHARACTER_SET_NAME, 
    COLLATION_NAME, COLLATIONPROPERTY(COLLATION_NAME, 'CodePage') as CODE_PAGE 
from INFORMATION_SCHEMA.COLUMNS 
where COLUMN_NAME = N'name' 

とあなたの列の CHARACTER_SET_NAMECOLLATION_NAME、および CODE_PAGEの点に注意してください。クエリを試してみてください。あなたは何を持っていますか?

確かにそれは'O₂'を正しく表すことができます。


あなたは、このような'O<sub>2</sub>'、またはTeXなど'O_2'など様なものとして、HTMLに似た構文を使用して、たとえば、いくつかの規則を選択することができます。

関連する問題