Главная страница
    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
4-1113407396
Klopan
2005-04-13 19:49
2005.06.06
Как поймать WM_SYSCOMMAND в системе?


14-1116506622
Layner
2005-05-19 16:43
2005.06.06
Здравствуйте. Подсобите расшифровать метод запаковки 3х чисел...


14-1116657776
lookin
2005-05-21 10:42
2005.06.06
Какое окно все-таки активно?


14-1116469702
/w\ax
2005-05-19 06:28
2005.06.06
Что за *cab?


1-1116657594
seregka
2005-05-21 10:39
2005.06.06
Параграфы в Richedit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский