2012-02-22 8 views
55

Dostaję poniżej wymienionego błędu sortowania, ponieważ przeniosłem się z komputera stacjonarnego na laptopa. Moja baza danych zawiera setki procedur przechowywanych, więc żadne rozwiązanie, takie jak nadpisywanie niektórych zapytań czy poprawianie zestawień dla kolumny, nie jest dla mnie możliwe.Nie można rozwiązać konfliktu sortowania między "SQL_Latin1_General_CP1_CI_AS" i "Latin1_General_CI_AI" w równym działaniu

„Nie można rozwiązać konflikt sortowania pomiędzy«SQL_Latin1_General_CP1_CI_AS»i«Latin1_General_CI_AI»w równej pracy”

Mój problem nie jest wyjątkowy i Szukałem tego sporo, ale rozwiązania dostępne sugerują mnie zastąpić zapytań z kodem, który nie jest możliwy. Proszę zasugerować jakieś rozwiązanie, które może ominąć to zestawienie.

Próbowałem to zmienić sortowanie bazy danych.

ALTER DATABASE testDB 
COLLATE French_CI_AI ; 
GO 

Dzięki.

Odpowiedz

90

Wystarczy użyć następującej składni, aby zestawić w locie podczas łączenia tabel z różnymi sortowaniami. Integruję system, więc muszę to zrobić.

select * from [Product] p join [category] c 
on 
c.[Name] collate SQL_Latin1_General_CP1_CI_AS 
= 
p.[Name] collate SQL_Latin1_General_CP1_CI_AS 
+0

Dla każdego, kto może to zrobić w locie –

+1

Dzięki Master Style, za twoją odpowiedź, ale to nie pomoże mi, ponieważ mój problem rozprzestrzenia się w około 600+ przechowywanych procedurach z ponad 100 stołami. – TechnicalSmile

+0

@MasterStyles Chcę zmienić całe sortowanie db. to jest możliwe? – coderwill

6
USE master; 
GO 
ALTER DATABASE PRATAP 
COLLATE Latin1_General_CI_AS_KS_WS ; 
GO 

--Verify the collation setting. 
SELECT name, collation_name 
FROM sys.databases 
WHERE name = N' PRATAP '; 
GO 
Powiązane problemy