Я знаю, я знаю с тем, что я записал в вопросе, я не должен быть удивлен. Но моя ситуация медленно работает над наследованной системой POS, и мой предшественник, по-видимому, не знал о СОЕДИНЕНИЯХ поэтому, когда я изучил одну из внутренних страниц, которая загружается в течение 60 секунд, я вижу, что это - довольно быстрое, перепишите эти 8 запросов как один запрос с ситуацией с СОЕДИНЕНИЯМИ. Проблема состоит в том, что помимо не знания о СОЕДИНЕНИЯХ он также, кажется, имел фетиш для нескольких баз данных и удивления, удивлял, они используют различные сопоставления. Факт вопроса, мы используем все "нормальные" латинские символы, что англоязычные люди рассмотрели бы весь алфавит, и эта целая вещь выйдет из употребления через несколько месяцев, таким образом, лейкопластырь будет всем, в чем я нуждаюсь.
Длинная короткая история, мне нужен некоторый метод для кастинга к единственному сопоставлению, таким образом, я могу сравнить два поля от двух баз данных.
Точная ошибка:
Не может разрешить конфликт сопоставления между "SQL_Latin1_General_CP850_CI_AI" и "SQL_Latin1_General_CP1_CI_AS" в равном операции.
Вы можете использовать предложение collate в запросе (я не могу найти свой пример прямо сейчас, поэтому мой синтаксис, вероятно, неправильный - надеюсь, он укажет вам правильное направление)
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
Общий способ - привести параметры сортировки к DATABASE_DEFAULT. Это удаляет жесткое кодирование имени сопоставления, которое могло измениться.
Это также полезно для временных таблиц и переменных таблиц, а также там, где вы можете не знать параметры сортировки сервера (например, вы являетесь поставщиком, размещающим свою систему на сервере клиента)
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