Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перестали работать запросы, COLLATE DATABASE_DEFAULT 
:(
    Опции темы
fleetboss
Дата 20.2.2010, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 30.7.2009

Репутация: нет
Всего: нет



Помогите переписать код. Я установил новую базу данных и в ней че-то не работают скрипты где идет сравнение с разными тамблицами (ошибка: Cannot resolve collation conflict for like operation.). В других запросах я просто приписывал COLLATE DATABASE_DEFAULT и работало, но в этом коде че-то не получается... тут много сравнений.

Вот собствено сам код:

Код
select top 20 c.name,class,reset,s.BankMoney,accountid, (select connectstat from memb_stat Where memb___id = c.accountid) from character c full join memb_info s
on c.accountid = s.memb___id 
where (c.accountid in ( select top 20 memb___id from memb_info order by BankMoney desc ))
and (c.name in ( select top 1 c.name from character c where c.accountid = s.memb___id order by reset desc))
order by BankMoney desc


как правельно будет?
попробывал так, не работает:

Код

select top 20 c.name,class,reset,s.BankMoney,accountid, (select connectstat from memb_stat Where memb___id COLLATE DATABASE_DEFAULT = c.accountid COLLATE DATABASE_DEFAULT) from character c full join memb_info s
on c.accountid COLLATE DATABASE_DEFAULT = s.memb___id COLLATE DATABASE_DEFAULT
where (c.accountid in ( select top 20 memb___id from memb_info order by BankMoney desc ))
and (c.name in ( select top 1 c.name from character c where c.accountid COLLATE DATABASE_DEFAULT = s.memb___id COLLATE DATABASE_DEFAULT order by reset desc))
order by BankMoney desc


Добавлено через 11 минут и 6 секунд
Текс вроде переписал и работает

Код
select top 20 c.name,class,reset,s.BankMoney,accountid, (select connectstat from memb_stat Where memb___id COLLATE DATABASE_DEFAULT = c.accountid) from character c full join memb_info s
on c.accountid COLLATE DATABASE_DEFAULT = s.memb___id 
where (c.accountid COLLATE DATABASE_DEFAULT in ( select top 20 memb___id from memb_info order by BankMoney desc ))
and (c.name COLLATE DATABASE_DEFAULT in ( select top 1 c.name from character c where c.accountid COLLATE DATABASE_DEFAULT = s.memb___id order by reset desc))
order by BankMoney desc


Народ, может кто знает как исправить это? Чтобы не приписывать во всех mssql запросах COLLATE DATABASE_DEFAULT?

П.С. Может кто может легче написать выше указаный код? 

Это сообщение отредактировал(а) fleetboss - 20.2.2010, 07:25
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.1159 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.