Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Nie można rozwiązać konfliktu sortowania

Z sortowaniami chodzi o to, że chociaż baza danych ma swoje własne sortowanie, każda tabela i każda kolumna mogą mieć własne sortowanie. Jeśli nie jest określony, przyjmuje domyślny obiekt nadrzędny, ale może być inny.

Gdy zmienisz sortowanie bazy danych, będzie to nowe ustawienie domyślne dla wszystkich nowych tabel i kolumn, ale nie zmieni to sortowania istniejących obiektów w bazie danych. Musisz ręcznie zmienić sortowanie każdej tabeli i kolumny.

Na szczęście w Internecie dostępne są skrypty, które mogą wykonać zadanie. Nie polecam żadnych, ponieważ ich nie wypróbowałem, ale oto kilka linków:

http://www.codeproject.com/Articles/302405/Łatwy sposób-zmieniania-bazy-danych-wszystkich-danych

Aktualizuj sortowanie wszystkich pól w bazie danych w locie

http://www.sqlservercentral.com/Forums/Topic820675-146-1.aspx

Jeśli potrzebujesz mieć różne sortowanie na dwóch obiektach lub nie możesz zmienić sortowania - nadal możesz JOIN między nimi za pomocą COLLATE i wybierz sortowanie, które chcesz dołączyć.

SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE Latin1_General_CI_AS 

lub używając domyślnego sortowania bazy danych:

SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE DATABASE_DEFAULT



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę pogrupować według kolumny daty i godziny bez uwzględniania czasu?

  2. Co robi 'COLLATE SQL_Latin1_General_CP1_CI_AS'?

  3. Jak uruchomić SQL Server 2017 i 2019 jednocześnie na komputerze Mac?

  4. Funkcje zdefiniowane przez użytkownika programu SQL Server

  5. Jak zmienić numer sekwencyjny konta pocztowego bazy danych w profilu w programie SQL Server (T-SQL)