Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
Есть скрипт, внутри которого видимо для красоты использованотакое в трех вариацияхhierarchyid HierarchyID HIERARCHYID При попытке запуска этого скрипта на базе с TURKISH_CI_AS получается ошибка, что такого типа не существует, но только на втором написании. Я помню, что у турков буква I это что-то особенного, но почему тогда на третьем написании не валится? |
12 мар 15, 12:15 [17374388] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Системные типы хранятся в системной базе, а не в пользовательской Сообщение было отредактировано: 12 мар 15, 12:21 |
||
12 мар 15, 12:20 [17374455] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
тот же сервер, его дефолт SQL_Latin1_General_CP1_CI_AS, создаю базу с collation по умолчанию, пускаю скрипт - все проходит, на нем же создаю с тем турецким - ошибка на одном написании, ладно бы на двух, еще куда ни шло.. |
||||
12 мар 15, 12:23 [17374490] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
Winnipuh, может, там не CI? сейчас проверю с ним. а пока что с все ок К сообщению приложен файл. Размер - 37Kb |
12 мар 15, 12:24 [17374494] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
с Turkish_CS_AS все тоже хорошо, и серверный коллэйшен у меня абсолютно как у вас |
12 мар 15, 12:28 [17374523] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
так в том-то и дело, если бы был не CI , то я бы не стал заморачиваться, я такое не поддерживаю. мало того, ошибка была еще и на написании имени поля ID |
||
12 мар 15, 12:29 [17374534] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
Winnipuh, ну я не знаю, что еще попробовать, не воспроизводится у меня. давайте еще версии серверов сверим, но вряд ли это что-то меняет. |
12 мар 15, 12:32 [17374560] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
и ошибку выдайте полным текстом и с номером, плиз, Msg 2715, Cannot find data type hierarchyid? и вообще тот код, что ее выдает, тоже давайте |
12 мар 15, 12:34 [17374576] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
слушайте, а может это не совсем не турецкая i, а украинская? не в той раскладке набрана? перенаберите еще раз и точно латиницей |
12 мар 15, 12:36 [17374588] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
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] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47066 |
А что вернётSELECT * FROM fn_helpcollations() WHERE name=N'Turkish_CI_AS';? |
12 мар 15, 12:52 [17374699] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
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] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
короче, это заморочки шарпа, а мы с ним не знакомы. пусть прояснит кто-то в этом понимающий, что там у них кейсо-зависимое и при чем тут турецкий. в кириллической базе все ок, например |
12 мар 15, 13:13 [17374853] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
и на 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] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
сосед, понимающий в шарпе, подтверждает, что у них все там case-sensitive. ну что методы case-sensitive, -- ок, а что они с типом сделали, я не знаю |
12 мар 15, 13:28 [17374936] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
ну да, ясное дело, что сенситив, а как он объяснит пример в предыдущем мэсыджэ? почему объявления без ошибок? там по идее должно быть то же. Я почему завёлся, ладно с той турецкой буквой, но начал исправлять и решил проверить, чтобы не пропустить ошибки, и вот такой разнобой. Единственная версия, это если объявления не проверяются до какого-то момента. Но вот такое дает только одну ошибку declare @id4 HiErArChYId set @id4=0x5AD6B580; select HiErArChYId::GetRoot() -- <---- error |
||
12 мар 15, 13:37 [17375004] Ответить | Цитировать Сообщить модератору |
daw Member Откуда: Муром -> Москва Сообщений: 7381 |
стоп-стоп. в первом посте были такие варианты: hierarchyid HierarchyID HIERARCHYID и _ошибка_ только на втором. все-таки это не так? |
||
12 мар 15, 13:39 [17375021] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
там я в общем написал, но есть получается есть разница - это объявление переменной или использование явно указанного типа для вызова функции. |
||||
12 мар 15, 13:42 [17375049] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Тип и методы - это разные вещи 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] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
конечно не так, вон же у меня 17374835 2 ошибки в двух случаях, только @id1=hierarchyid::GetRoot() катит |
||
12 мар 15, 13:45 [17375073] Ответить | Цитировать Сообщить модератору |
daw Member Откуда: Муром -> Москва Сообщений: 7381 |
тогда да, это турецкий коллейшн. они используют расширенную латиницу, т.е. для i и I используются символы из набора латиницы (с теми же кодами), но при этом в турецком коллейшене i и I - это разные буквы. так что, латинские i и I в турецком коллейшейне, даже CI, действительно case-sensitive. |
||||
12 мар 15, 13:51 [17375136] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
Glory, с Турцией реальная проблема. пусть HIERARCHYID всегда case-sensitive. но в любой базе с CI, код выполняется без ошибок (если CS, то да, ошибка) а в базе с Turkish_CI_AS ошибка есть все равно. турки кривые какие-то |
12 мар 15, 13:58 [17375199] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
да, спасибо, хорошо, объявления оставим, такое: В этом случае всё работает: 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 | ![]() |