sql >> Database teknologi >  >> RDS >> Sqlserver

Kan ikke løse indsamlingskonflikt

Sagen med sorteringer er, at selvom databasen har sin egen kollation, kan hver tabel og hver kolonne have sin egen kollation. Hvis det ikke er angivet, tager det standarden for dets overordnede objekt, men kan være anderledes.

Når du ændrer sortering af databasen, vil det være den nye standard for alle nye tabeller og kolonner, men det ændrer ikke sammenstillingen af ​​eksisterende objekter inde i databasen. Du skal gå og manuelt ændre sammenstillingen af ​​hver tabel og kolonne.

Heldigvis er der scripts tilgængelige på internettet, der kan gøre arbejdet. Jeg vil ikke anbefale nogen, da jeg ikke har prøvet dem, men her er et par links:

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

Opdater Samling af alle felter i databasen on the fly

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

Hvis du har brug for at have forskellig sortering på to objekter eller ikke kan ændre sorteringer - kan du stadig JOIN mellem dem ved hjælp af COLLATE kommando, og vælg den sortering, du ønsker at deltage i.

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

eller ved at bruge standarddatabasesortering:

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



  1. Normaliser array-underskrifter for 1-dimensionelle array, så de starter med 1

  2. Er det muligt at bruge `SqlDbType.Structured` til at videregive Tabel-Valued Parameters i NHibernate?

  3. Du skal installere postgresql-server-dev-X.Y for at bygge en server-side-udvidelse eller libpq-dev for at bygge en klient-side-applikation

  4. PHP &MySQL:mysqli_num_rows() forventer, at parameter 1 er mysqli_result, boolean givet