Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Япона решетка: Violation of UNIQUE KEY constraint 'UQ__jp__72E12F1B27B572FC'. Cannot  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
CREATE TABLE jp( id int IDENTITY NOT NULL PRIMARY KEY CLUSTERED, name nvarchar(255) NOT NULL UNIQUE NONCLUSTERED );
GO

INSERT INTO jp (name) values (NCHAR(65283));
INSERT INTO jp (name) values (NCHAR(35));
GO


select UNICODE(N'#'), UNICODE(N'#'), NCHAR(65283), NCHAR(35)

Кaк же так?
6 окт 15, 19:32    [18243465]     Ответить | Цитировать Сообщить модератору
 Re: Япона решетка: Violation of UNIQUE KEY constraint 'UQ__jp__72E12F1B27B572FC'. Cannot  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
Lepsik,

collation
6 окт 15, 19:39    [18243500]     Ответить | Цитировать Сообщить модератору
 Re: Япона решетка: Violation of UNIQUE KEY constraint 'UQ__jp__72E12F1B27B572FC'. Cannot  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
такой нужен для колонки

select * from sys.fn_helpcollations() where name like '%_WS'


https://msdn.microsoft.com/ru-ru/library/ms143515(v=sql.105).aspx
Width-sensitive (_WS)


Distinguishes between a single-byte character and the same character when represented as a double-byte character.

If this option is not selected, SQL Server considers the single-byte and double-byte representation of the same character to be identical for sorting purposes.
6 окт 15, 19:47    [18243535]     Ответить | Цитировать Сообщить модератору
 Re: Япона решетка: Violation of UNIQUE KEY constraint 'UQ__jp__72E12F1B27B572FC'. Cannot  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
Я знаю что colation лечит, но я предпологал что colation - только сортировка, а получaется сравнение на уровне ASCII, то есть дерево строится после преобразования wide->narrow

be identical for sorting purposes.
6 окт 15, 19:59    [18243589]     Ответить | Цитировать Сообщить модератору
 Re: Япона решетка: Violation of UNIQUE KEY constraint 'UQ__jp__72E12F1B27B572FC'. Cannot  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
Lepsik
be identical for sorting purposes.


Обще написано. Порядок сортировки определяют операции <, >, =.

SELECT 1
WHERE 
	NCHAR(65283) COLLATE Hebrew_CI_AI_WS = NCHAR(35) COLLATE Hebrew_CI_AI_WS

SELECT 1
WHERE 
	NCHAR(65283) COLLATE Hebrew_CI_AI = NCHAR(35) COLLATE Hebrew_CI_AI


-----------

(0 row(s) affected)


-----------
1

(1 row(s) affected)
6 окт 15, 20:12    [18243649]     Ответить | Цитировать Сообщить модератору
 Re: Япона решетка: Violation of UNIQUE KEY constraint 'UQ__jp__72E12F1B27B572FC'. Cannot  [new]
o-o
Guest
а я-то думаю, "япона решетка" это из серии "японский бог",
типа так теперь принято выражать досаду или еще чего

а прикольные у них широченные символы.
выходит, мы-то только половинчатые в смысле ширины юзаем?
ну так пора уже выполнить полноширинную памятную надпись
+
select NCHAR(0xff33) + NCHAR(0xff31) + NCHAR(0xff2c) +
       NCHAR(0xff0e) + NCHAR(0xff52) + NCHAR(0xff55) +
       NCHAR(0xff0d) + NCHAR(0xff12) + NCHAR(0xff10) +
       NCHAR(0xff11) + NCHAR(0xff15);


К сообщению приложен файл. Размер - 6Kb
6 окт 15, 21:35    [18243919]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить