Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Вниз

Сравнение строк   Найти похожие ветки 

 
MakNik   (2005-04-26 12:56) [0]

Declare @ID_NextPeriod UniqueIdentifier Set @ID_NextPeriod="63ED4212-2EF0-4A03-9C81-0AEE80FB87A5"
Declare @Tmp TABLE(ID_Name nvarchar(255),Val nvarchar(255))
insert Into @Tmp
Select RegValue.Name,RegValue.Val from RegValue
Where RegValue.Val<>"" and SUBSTRING(RegValue.Name,1,2)="ID"

Update RegValue
Set Val="{"+CONVERT(nvarchar(38),CP.ID)+"}"
from @Tmp as Tmp1,RegValue, CodePay
Left Outer Join CodePay as Cp ON CP.Code=CodePay.Code and CP.ID_Period=@ID_NextPeriod
Where CodePay.ID=CONVERT(UniqueIdentifier,Tmp1.Val)
and Tmp1.ID_Name=RegValue.Name


RegValue:
ID
Name nvarchar(255)
Val nvarchar(255)

Подскажите, пожалуйста, почему один и тот же запрос на одном сервере работает, а на другом выдает ошибку:
"Server: Msg 446, Level 16, State 9, Line 12
Cannot resolve collation conflict for equal to operation."


 
Johnmen ©   (2005-04-26 13:31) [1]

Не может сопоставить поле Name таблицы RegValue, т.е. к какой таблице относится упоминание RegValue.Name - к той, которая апдейт, или к той, из которой селект.

Для себя, и тебе рекомендую, я жестко решил, что ВСЕГДА указывать псевдонимы. Это однозначно поможет абстрагироваться от логики работы анализатора SQL выражения в части сопоставления имен таблиц. А логика эта у разных серверов разная...


 
MakNik   (2005-04-26 14:20) [2]

... заменил строки
Update RegValue
Set Val="{"+CONVERT(nvarchar(38),CP.ID)+"}"

на Select *
, использовал псевдонимы... а ошибка осталась...


 
Johnmen ©   (2005-04-26 14:33) [3]

В приведенном огрызке (:)) использование псевдонима не видно...


 
Nikolay M. ©   (2005-04-26 14:59) [4]

Колейшены баз на "работающем" и "неработающем" серверах какие?


 
MakNik   (2005-04-26 15:21) [5]


> Колейшены баз на "работающем" и "неработающем" серверах
> какие?

Collation на обеих базах одинаковые (Cyrillic_General_CI_AS), а вот правда в свойствах самих серверов - разные: на "работающем" - Cyrillic_General_CI_AS, а на "неработающем" - Ukrainial_CI_AS.
... может в этом прикол? ... что делать?


 
Nikolay M. ©   (2005-04-26 15:30) [6]


> ... может в этом прикол?

Может.


> что делать?

Попробовать выставить колейшен непосредственно в запросе у селектируемых таблиц.


 
MakNik   (2005-04-26 18:02) [7]


> Попробовать выставить колейшен непосредственно в запросе
> у селектируемых таблиц.

...а пример можно?


 
Nikolay M. ©   (2005-04-26 18:09) [8]

SELECT
 *
FROM
 T1 a
INNER JOIN T2 b ON a.F1 = b.F2 COLLATE Latin1_General_CI_AI


 
MakNik   (2005-04-26 18:16) [9]

ОК, Спасибо... разобрался...
так тоже работает:
Declare @Tmp TABLE(ID_Name nvarchar(255) COLLATE Cyrillic_General_CI_AS,Val nvarchar(255) COLLATE Cyrillic_General_CI_AS)
:)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.014 c
8-1108810484
avlan
2005-02-19 13:54
2005.06.06
Инструмент "Спрей"


4-1113721831
Ola
2005-04-17 11:10
2005.06.06
Как при запуске приложения менять курсор мыши на мой собственный.


1-1116670304
Eldar
2005-05-21 14:11
2005.06.06
Добавление, а не замена текста


6-1111468533
atruhin
2005-03-22 08:15
2005.06.06
FD_CLOSE и оставшиеся в буфере данные.


14-1116297444
Defunct
2005-05-17 06:37
2005.06.06
Алгоритм целочисленного деления или хотя бы деления на 10





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский