Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MS SQL Server > Заменить бинарное поле в таблице на Unicode текст |
Автор: DigitalDummy 14.7.2008, 15:52 |
Здоровья вам, и разуменья, достопочтенный великий народ форума Винград! Поделитесь знаниями и мыслями, кто сколько сможет, по следующей задаче: В таблице, кроме других, есть одно «бинарное» поле. В нем я храню текстовую строку в формате Unicode (UTF-16) в виде, соответственно, массива байт. В менеджере базы (SQL Server Management Studio Express), конечно же, при обзоре таблицы поле видно как <Binary data>. А хочется, чтобы оно отображалось там как текст (а то не удобно искать). Что можно сделать, чтобы осуществить данную мечту при условии, что кодировка должна быть Unicode? Я мало разбираюсь в настройках БД вообще, и в кодировках в частности. Горячо приму к сердцу любые советы, ссылки или общие описания, как вообще с вопросом кодировок обстоят дела в БД и как это все «внутри» работает. Вопрос только о базе «Microsoft SQL Server». Большое спасибо за любую помощь. |
Автор: DigitalDummy 5.10.2008, 16:01 | ||||
Прошли годы... И я узнал как можно было всё сделать. Во-первых, чтобы хранить данные в Unicode UTF-16 можно было изначально поставить этому полю тип nvarchar или nchar. Этого я не знал, так как начал работать с БД первые несколько дней. Во-вторых, отвечу на свой вопрос: бинарное поле в таблице (тип varbinary или binary) можно представить другим нужным мне типом данных ввиде SQL запроса (используя функцию CAST):
Но при этом есть замечание: полученное поле не будет иметь идентификатора. Чтобы обратиться к "изменённому" полю, представленному как другой тип данных, но так, как-будто оно тоже самое, нужно указать для него имя (используя оператор AS):
Всем спасибо. |