Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.06;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
1-1116884166
grol
2005-05-24 01:36
2005.06.06
Работа с динамическими массивами!


1-1116699184
seregka
2005-05-21 22:13
2005.06.06
Запуск программы из контекстного меню IE


14-1116658704
Жека79
2005-05-21 10:58
2005.06.06
Помогите пожалуйста. У меня проблема с Explorer ом!


3-1114773445
Шурик
2005-04-29 15:17
2005.06.06
Сервисные функции с БД


14-1116585377
DSKalugin
2005-05-20 14:36
2005.06.06
Замучала отправка отчета об ошибках в WinXP