Форум: "Базы";
Текущий архив: 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