sql >> Database >  >> RDS >> Sqlserver

Kan sorteerconflict niet oplossen

Het ding met sorteringen is dat hoewel de database zijn eigen sortering heeft, elke tabel en elke kolom zijn eigen sortering kan hebben. Als het niet is opgegeven, neemt het de standaardwaarde van het bovenliggende object, maar het kan anders zijn.

Wanneer u de sortering van de database wijzigt, wordt dit de nieuwe standaard voor alle nieuwe tabellen en kolommen, maar verandert de sortering van bestaande objecten in de database niet. U moet de sortering van elke tabel en kolom handmatig wijzigen.

Gelukkig zijn er scripts beschikbaar op internet die het werk kunnen doen. Ik ga er geen aanbevelen omdat ik ze niet heb geprobeerd, maar hier zijn enkele links:

http://www.codeproject.com/Articles/302405/The-Easy-way-of-changing-Collation-of-all-Database

Werk de sortering van alle velden in de database direct bij

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

Als u een verschillende sortering op twee objecten wilt hebben of de sortering niet kunt wijzigen, kunt u nog steeds JOIN tussen hen met behulp van COLLATE commando, en kies de sortering die je wilt gebruiken.

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

of gebruik standaard database-sortering:

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



  1. AWS RDS:"SQLSTATE [22001] - Gegevens te lang voor kolom" met MariaDB 10.2

  2. Word lid van 3 tabellen in SQL

  3. Waarom is het het beste om een ​​telefoonnummer op te slaan als een string versus een geheel getal?

  4. Maak een back-up van een enkele tabel met de gegevens ervan uit een database in SQL Server 2008