Столбцы SQL Server для поддержки многоязычной сортировки / символов

У меня есть база данных SQL Server с сортировкой по умолчанию Latin1_General_CI_AS. Столбцы моей таблицы имеют тип данных nvarchar или ntext.

База данных предназначена для многоязычного веб-сайта, который должен поддерживать как минимум польский, английский, а позднее также украинский и французский языки.

Я даже изо всех сил пытаюсь заставить его принимать польские символы. С помощью столбцов типа nvarchar/ntext я могу вручную изменить строку в базе данных, чтобы использовать польские специальные символы, но при использовании операторов insert или UPDATE специальные символы лишаются своих акцентов.

Eg.

INSERT INTO Some_Table 
VALUES( 7, 'aśęóń', 'ąćł', 0.1, 1)

в конечном итоге во втором и третьем столбцах на INSERT или UPDATE это оказывается 'aseón' и 'acl', поэтому исходные символы теряются.

Я пытался настроить другое сопоставление, но даже если в поле указано Polish_CS_AS, оно не принимает польские символы при вставке / обновлении.

Как заставить базу данных принимать символы разных языков?


person nickornotto    schedule 03.01.2017    source источник
comment
Вы должны использовать VALUES( 7, N'aśęóń', N'ąćł', 0.1, 1) (а также вам следует прекратить использование ntext и вместо этого использовать `nvarchar (max))   -  person Lamak    schedule 03.01.2017
comment
Попробуйте поставить префикс N в столбец, вставив как INSERT INTO Some_Table VALUES( 7, N'aśęóń', N'ąćł', 0.1, 1)   -  person Shakeer Mirza    schedule 03.01.2017
comment
Спасибо всем, теперь все работает отлично.   -  person nickornotto    schedule 03.01.2017
comment
Типы данных ntext, text и image будут удалены в будущей версии SQL Server. Избегайте использования этих типов данных в новых разработках и запланируйте изменение приложений, которые в настоящее время их используют. Вместо этого используйте nvarchar(max), varchar(max) и varbinary(max). См. подробности здесь   -  person marc_s    schedule 03.01.2017


Ответы (1)


Пытаться:

INSERT INTO Some_Table VALUES( 7, N'aśęóń', N'ąćł', 0.1, 1), если вы уже установили для соответствующего столбца значение NVARCHAR, а общее количество значений, которые вы пытались вставить, равно количеству значений в вашей таблице, поскольку вы не указали, какие столбцы необходимо вставить.

person LONG    schedule 03.01.2017