Wykonywanie połączenia między dwiema bazami danych z różnymi kolacjami na serwerze SQL i uzyskanie błędu
Wiem, Wiem z tego co napisałem w pytaniu nie powinno mnie dziwić. Ale Moja sytuacja powoli pracuje nad odziedziczonym systemem POS, a mój poprzednik najwyraźniej nie był świadomy JOINs, więc kiedy spojrzałem na jedną z wewnętrznych stron, które ładują się przez 60 sekund, widzę, że jest to dość szybkie, przepisać te zapytania 8 jako jedno zapytanie z sytuacją JOINs. Problem w tym, że poza tym, że nie wiem o dołącza on również wydaje się mieć Fetysz dla wielu baz danych i zaskoczyć, zaskoczyć ich używaj różnych zestawień. Faktem jest, że używamy wszystkich" normalnych " znaków łacińskich, które anglojęzyczni ludzie będą rozważać cały alfabet i to wszystko będzie z użycia w ciągu kilku miesięcy, więc bandaid jest wszystko, czego potrzebuję.
Krótko mówiąc, potrzebuję jakiejś metody, aby rzucić do jednego zestawienia, abym mógł porównać dwa pola z dwóch baz danych.
Dokładny błąd to:
Nie można rozwiązać konfliktu kolacji między "SQL_Latin1_General_CP850_CI_AI" oraz "SQL_Latin1_General_CP1_CI_AS" w równa operacji.
2 answers
Możesz użyć klauzuli collate w zapytaniu (nie mogę teraz znaleźć mojego przykładu, więc moja składnia jest prawdopodobnie zła - mam nadzieję, że wskaże ci właściwy kierunek)
select sone_field collate SQL_Latin1_General_CP850_CI_AI
from table_1
inner join table_2
on (table_1.field collate SQL_Latin1_General_CP850_CI_AI = table_2.field)
where whatever
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-18 17:39:45
Ogólnym celem jest wymuszenie kompilacji do DATABASE_DEFAULT. Usuwa to twarde kodowanie nazwy kolacji, która może ulec zmianie.
Jest to również przydatne dla tabeli temp i zmiennych tabeli, i tam, gdzie możesz nie znać zestawienia serwera (np. jesteś sprzedawcą umieszczającym swój system na serwerze klienta)
select
sone_field collate DATABASE_DEFAULT
from
table_1
inner join
table_2 on table_1.field collate DATABASE_DEFAULT = table_2.field
where whatever
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-09 14:09:05