Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Не може да се разреши конфликт на съпоставяне

Въпросът за съпоставянето е, че въпреки че базата данни има свое собствено съпоставяне, всяка таблица и всяка колона могат да имат свое собствено съпоставяне. Ако не е посочено, приема по подразбиране за своя родителски обект, но може да бъде различно.

Когато промените сортирането на базата данни, това ще бъде новото по подразбиране за всички нови таблици и колони, но не променя съпоставянето на съществуващи обекти в базата данни. Трябва да отидете и да промените ръчно сортирането на всяка таблица и колона.

За щастие в интернет има налични скриптове, които могат да свършат работата. Няма да препоръчам никакви, тъй като не съм ги пробвал, но ето няколко връзки:

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

Актуализирайте колекцията на всички полета в базата данни в движение

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

Ако трябва да имате различно съпоставяне на два обекта или не можете да промените съпоставянията - все пак можете да JOIN между тях с помощта на COLLATE команда и изберете съпоставянето, което искате за присъединяване.

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

или използвайки съпоставяне на база данни по подразбиране:

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. Променете формата на датата за текущата сесия в SQL Server

  2. Урок по SQL (DDL, DML) на примера на диалект на MS SQL Server

  3. Редът на редовете по подразбиране в заявка SELECT - SQL Server 2008 срещу SQL 2012

  4. Как да шифровате дефинирана от потребителя функция в SQL Server

  5. Как да покажете съпоставянето на колона в SQL Server (T-SQL)