Главная страница
    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.012 c
4-1113581358
rll-progr
2005-04-15 20:09
2005.06.06
Экран


1-1116514312
Cat
2005-05-19 18:51
2005.06.06
число сделать наибольшим числом кратным 10.


8-1108712654
tradakad
2005-02-18 10:44
2005.06.06
работа с видео файлом


14-1116587533
Lexer
2005-05-20 15:12
2005.06.06
Как прочесть xml?


4-1113392364
zsv
2005-04-13 15:39
2005.06.06
Выключение из ограниченной записи





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