Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Вопроc о превратностях использования collation  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Есть скрипт, внутри которого видимо для красоты использованотакое в трех вариациях

hierarchyid
HierarchyID
HIERARCHYID


При попытке запуска этого скрипта на базе с TURKISH_CI_AS получается ошибка, что такого типа не существует, но только на втором написании.
Я помню, что у турков буква I это что-то особенного, но почему тогда на третьем написании не валится?
12 мар 15, 12:15    [17374388]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Glory
Member

Откуда:
Сообщений: 104751
Winnipuh
получается ошибка, что такого типа не существует, но только на втором написании.

Системные типы хранятся в системной базе, а не в пользовательской

Сообщение было отредактировано: 12 мар 15, 12:21
12 мар 15, 12:20    [17374455]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Winnipuh
получается ошибка, что такого типа не существует, но только на втором написании.

Системные типы хранятся в системной базе, а не в пользовательской


тот же сервер, его дефолт SQL_Latin1_General_CP1_CI_AS, создаю базу с collation по умолчанию, пускаю скрипт - все проходит, на нем же создаю с тем турецким - ошибка на одном написании, ладно бы на двух, еще куда ни шло..
12 мар 15, 12:23    [17374490]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
o-o
Guest
Winnipuh,

может, там не CI?
сейчас проверю с ним.
а пока что с все ок

К сообщению приложен файл. Размер - 37Kb
12 мар 15, 12:24    [17374494]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
o-o
Guest
с Turkish_CS_AS все тоже хорошо, и серверный коллэйшен у меня абсолютно как у вас
12 мар 15, 12:28    [17374523]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
o-o
Winnipuh,

может, там не CI?
сейчас проверю с ним.
а пока что с все ок


так в том-то и дело, если бы был не CI , то я бы не стал заморачиваться, я такое не поддерживаю.

мало того, ошибка была еще и на написании имени поля ID
12 мар 15, 12:29    [17374534]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
o-o
Guest
Winnipuh,

ну я не знаю, что еще попробовать, не воспроизводится у меня.
давайте еще версии серверов сверим, но вряд ли это что-то меняет.
12 мар 15, 12:32    [17374560]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
o-o
Guest
и ошибку выдайте полным текстом и с номером, плиз,
Msg 2715, Cannot find data type hierarchyid?
и вообще тот код, что ее выдает, тоже давайте
12 мар 15, 12:34    [17374576]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
o-o
Guest
слушайте, а может это не совсем не турецкая i, а украинская?
не в той раскладке набрана?
перенаберите еще раз и точно латиницей
12 мар 15, 12:36    [17374588]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
o-o
Winnipuh,

ну я не знаю, что еще попробовать, не воспроизводится у меня.
давайте еще версии серверов сверим, но вряд ли это что-то меняет.


declare @id hierarchyid
SELECT @@VERSION
--Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) 
--	Sep 21 2011 22:45:45 
--	Copyright (c) 1988-2008 Microsoft Corporation
--	Enterprise Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2)

select @id=HierarchyID::GetRoot()
--Msg 243, Level 16, State 4, Line 3
--Type HierarchyID is not a defined system type.

select @id=HierarchyiD::GetRoot()
-- OK
12 мар 15, 12:42    [17374632]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
iap
Member

Откуда: Москва
Сообщений: 47066
А что вернёт
SELECT * FROM fn_helpcollations() WHERE name=N'Turkish_CI_AS';
?
12 мар 15, 12:52    [17374699]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iap
А что вернёт
SELECT * FROM fn_helpcollations() WHERE name=N'Turkish_CI_AS';
?



declare @id hierarchyid
SELECT @@VERSION
--Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) 
--	Sep 21 2011 22:45:45 
--	Copyright (c) 1988-2008 Microsoft Corporation
--	Enterprise Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2)

select @id=HierarchyID::GetRoot()
--Msg 243, Level 16, State 4, Line 3
--Type HierarchyID is not a defined system type.

select @id=HierarchyiD::GetRoot()
-- OK

SELECT DATABASEPROPERTYEX('turkish', 'Collation');
-- Turkish_CI_AS

SELECT * FROM fn_helpcollations() WHERE name=N'Turkish_CI_AS';
-- Turkish_CI_AS	Turkish, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive
12 мар 15, 13:05    [17374794]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
o-o
Guest
итак, в базе с Turkish_CI_AS вот это проходит:
declare @id1 hierarchyid,
@id2 HierarchyID,
@id3 HIERARCHYID;

а это выдает ошибку:
select @id1=hierarchyid::GetRoot()
select @id2=HierarchyID::GetRoot()
select @id3=HIERARCHYID::GetRoot()

Msg 243, Level 16, State 4, Line 7
Type HierarchyID is not a defined system type.
Msg 243, Level 16, State 4, Line 8
Type HIERARCHYID is not a defined system type.


занчит, все дело в HierarchyID::GetRoot(),
но я не знаю, что это такое, вообще впервые вижу
12 мар 15, 13:10    [17374835]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
o-o
Guest
короче, это заморочки шарпа, а мы с ним не знакомы.
пусть прояснит кто-то в этом понимающий, что там у них кейсо-зависимое
и при чем тут турецкий.
в кириллической базе все ок, например
12 мар 15, 13:13    [17374853]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
o-o
короче, это заморочки шарпа, а мы с ним не знакомы.
пусть прояснит кто-то в этом понимающий, что там у них кейсо-зависимое
и при чем тут турецкий.
в кириллической базе все ок, например


и на 2012 то же.

-- Все объявления - без ошибок

declare @id HierarchYId
declare @id1 HierarchYID
declare @id2 HierarchyID
declare @id3 HIERARCHYID
declare @id4 HiErArChYId
declare @id5 hierarchyid

-- Все селекты с ошибками, кроме последнего
select HierarchYId::GetRoot()
select HierarchYID::GetRoot()
select HierarchyID::GetRoot()
select HIERARCHYID::GetRoot()
select HiErArChYId::GetRoot()
select hierarchyid::GetRoot() -- <-------- ok


12 мар 15, 13:21    [17374889]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
o-o
Guest
сосед, понимающий в шарпе, подтверждает, что у них все там case-sensitive.
ну что методы case-sensitive, -- ок,
а что они с типом сделали, я не знаю
12 мар 15, 13:28    [17374936]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
o-o
сосед, понимающий в шарпе, подтверждает, что у них все там case-sensitive.
ну что методы case-sensitive, -- ок,
а что они с типом сделали, я не знаю


ну да, ясное дело, что сенситив, а как он объяснит пример в предыдущем мэсыджэ?
почему объявления без ошибок? там по идее должно быть то же.
Я почему завёлся, ладно с той турецкой буквой, но начал исправлять и решил проверить, чтобы не пропустить ошибки, и вот такой разнобой.
Единственная версия, это если объявления не проверяются до какого-то момента.
Но вот такое дает только одну ошибку

declare @id4 HiErArChYId
set @id4=0x5AD6B580;
select HiErArChYId::GetRoot() -- <---- error
12 мар 15, 13:37    [17375004]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
Winnipuh
-- Все селекты с ошибками, кроме последнего
select HierarchYId::GetRoot()
select HierarchYID::GetRoot()
select HierarchyID::GetRoot()
select HIERARCHYID::GetRoot()
select HiErArChYId::GetRoot()
select hierarchyid::GetRoot() -- <-------- ok




стоп-стоп. в первом посте были такие варианты:

hierarchyid
HierarchyID
HIERARCHYID

и _ошибка_ только на втором.

все-таки это не так?
12 мар 15, 13:39    [17375021]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
daw
Winnipuh
-- Все селекты с ошибками, кроме последнего
select HierarchYId::GetRoot()
select HierarchYID::GetRoot()
select HierarchyID::GetRoot()
select HIERARCHYID::GetRoot()
select HiErArChYId::GetRoot()
select hierarchyid::GetRoot() -- <-------- ok




стоп-стоп. в первом посте были такие варианты:

hierarchyid
HierarchyID
HIERARCHYID

и _ошибка_ только на втором.

все-таки это не так?


там я в общем написал, но есть получается есть разница - это объявление переменной или использование явно указанного типа для вызова функции.
12 мар 15, 13:42    [17375049]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Glory
Member

Откуда:
Сообщений: 104751
Winnipuh
там я в общем написал, но есть получается есть разница - это объявление переменной или использование явно указанного типа для вызова функции.

Тип и методы - это разные вещи

https://connect.microsoft.com/SQLServer/feedback/details/315346/hierarchyid-methods-are-case-sensitive-but-is-much-better-to-be-case-insesnsitive
12 мар 15, 13:43    [17375063]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
o-o
Guest
daw
и _ошибка_ только на втором.
все-таки это не так?

конечно не так, вон же у меня 17374835 2 ошибки в двух случаях, только @id1=hierarchyid::GetRoot() катит
12 мар 15, 13:45    [17375073]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Glory
Member

Откуда:
Сообщений: 104751
https://books.google.ee/books?id=rgq3BgAAQBAJ&pg=PT1041&lpg=PT1041&dq=HierarchyID case sensitive&source=bl&ots=iBTrCvnQAy&sig=YVKgWID6YQStG5xLTIInqGidlEU&hl=en&sa=X&ei=aW0BVd_8AoL5ywPs-4LQCA&ved=0CCsQ6AEwAg#v=onepage&q=HierarchyID case sensitive&f=false
12 мар 15, 13:45    [17375074]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
o-o
daw
и _ошибка_ только на втором.
все-таки это не так?

конечно не так, вон же у меня 17374835 2 ошибки в двух случаях, только @id1=hierarchyid::GetRoot() катит


тогда да, это турецкий коллейшн. они используют расширенную латиницу, т.е. для i и I используются символы из набора латиницы (с теми же кодами), но при этом в турецком коллейшене i и I - это разные буквы. так что, латинские i и I в турецком коллейшейне, даже CI, действительно case-sensitive.
12 мар 15, 13:51    [17375136]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
o-o
Guest
Glory,
с Турцией реальная проблема.
пусть HIERARCHYID всегда case-sensitive.
но в любой базе с CI, код выполняется без ошибок (если CS, то да, ошибка)
а в базе с Turkish_CI_AS ошибка есть все равно.
турки кривые какие-то
12 мар 15, 13:58    [17375199]     Ответить | Цитировать Сообщить модератору
 Re: Вопроc о превратностях использования collation  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
https://books.google.ee/books?id=rgq3BgAAQBAJ&pg=PT1041&lpg=PT1041&dq=HierarchyID case sensitive&source=bl&ots=iBTrCvnQAy&sig=YVKgWID6YQStG5xLTIInqGidlEU&hl=en&sa=X&ei=aW0BVd_8AoL5ywPs-4LQCA&ved=0CCsQ6AEwAg#v=onepage&q=HierarchyID case sensitive&f=false


да, спасибо, хорошо, объявления оставим, такое:


В этом случае всё работает:
SELECT DATABASEPROPERTYEX(db_name(), 'Collation');
---
[b]Ukrainian_CI_AS[/b]

select HierarchYId::GetRoot()
---
0x

select HierarchYID::GetRoot()
---
0x

select HierarchyID::GetRoot()
---
0x

select HIERARCHYID::GetRoot()
---
0x

select HiErArChYId::GetRoot()
---
0x

select HiErArChYid::GetRoot()
---
0x



В этом случае всё не работает:

SELECT DATABASEPROPERTYEX(db_name(), 'Collation');
---
[b]Turkish_CI_AS[/b]

select HierarchYId::GetRoot()
select HierarchYID::GetRoot()
select HierarchyID::GetRoot()
select HIERARCHYID::GetRoot()
select HiErArChYId::GetRoot()
select HiErArChYid::GetRoot()

Msg 243, Level 16, State 4, Line 17
Type HierarchYId is not a defined system type.
Msg 243, Level 16, State 4, Line 18
Type HierarchYID is not a defined system type.
Msg 243, Level 16, State 4, Line 19
Type HierarchyID is not a defined system type.
Msg 243, Level 16, State 4, Line 20
Type HIERARCHYID is not a defined system type.
Msg 243, Level 16, State 4, Line 21
Type HiErArChYId is not a defined system type.
12 мар 15, 13:59    [17375205]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить