Проблема сопоставления - PullRequest
1 голос
/ 21 апреля 2011

Я получаю разные параметры сортировки в разных объектах в базе данных ...

  • Параметры сортировки таблиц: 'SQL_SwedishStd_Pref_CP1_CI_AS'
  • Параметры сортировки хранимых процедур: SQL_Latin1_General_CP1_CI_AS '

Что создает проблему при выполнении запроса.Кто-нибудь может мне помочь?

Заранее спасибо

1 Ответ

3 голосов
/ 21 апреля 2011

Вам нужно будет указать, в соответствии с каким сопоставлением вы хотите выполнить объединение (или предложение where)

См. Приведенный ниже пример того, как это кодировать.

create table x( id int, name varchar(256) collate SQL_SwedishStd_Pref_CP1_CI_AS)
create table y( id int, name varchar(256) collate SQL_Latin1_General_CP1_CI_AS)

insert into x values (1, 'Filip')
insert into y values (1, 'Filip')

Так что еслиЕсли вы хотите присоединиться на основе сопоставления Latin1, вы пишете запрос следующим образом:

select * 
  from x
  join y 
    on x.name collate SQL_Latin1_General_CP1_CI_AS = y.name 

Если вы хотите присоединиться на основе сопоставления шведского языка, вы пишете запрос следующим образом:

select * 
  from x
  join y 
    on x.name = y.name collate SQL_SwedishStd_Pref_CP1_CI_AS 

ЕслиРазница в сличении была создана из-за неправильного определения таблицы. Вы можете изменить столбец для переключения параметров сортировки:

alter table x alter column name varchar(256) collate SQL_Latin1_General_CP1_CI_AS

Если вы затем выполните запрос, подобный этому, больше ошибок не будет:

select * 
  from x
  join y 
    on x.name = y.name
...