2017-01-06 10 views
2

У меня есть таблица с 2 столбцами.Вставить значение индекса в sql server varchar column


ID: номер, имя: VARCHAR (50)


Я хочу, чтобы вставить значение кислорода (O2) в поле имени, 2 в качестве индекса. , когда я вставляю, он не может сохранить его как значение индекса.

Одним из решений является изменение типа данных данных на nvarchar. , но я ищу лучшее решение, так что мне не нужно менять таблицу.

+1

Юникодовые символы хранятся в 'nvarchar', например: символы, хинди, иероглифы и т. Д. – Arshad

ответ

0

Я думаю, что только ASCII и Extended ASCII разрешены в поле char/varchar. Но если вы используете 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_NAME, COLLATION_NAME и CODE_PAGE для столбца. Что у тебя есть?

Я очень сомневаюсь, что это будет что-то, что может правильно изобразить 'O₂'.


Вы можете выбрать какое-либо соглашение, например, с использованием HTML-подобных конструкций, таких как 'O<sub>2</sub>' или TeX -как из них, такие как 'O_2'.