Vấn đề về đối chiếu là mặc dù cơ sở dữ liệu có đối chiếu riêng nhưng mọi bảng và mọi cột đều có thể có đối chiếu riêng. Nếu không được chỉ định, nó lấy đối tượng gốc của nó làm giá trị mặc định, nhưng có thể khác.
Khi bạn thay đổi đối chiếu của cơ sở dữ liệu, nó sẽ là mặc định mới cho tất cả các bảng và cột mới, nhưng nó không thay đổi đối chiếu của các đối tượng hiện có bên trong cơ sở dữ liệu. Bạn phải thực hiện và thay đổi thủ công đối chiếu của mọi bảng và cột.
May mắn thay, có các tập lệnh có sẵn trên internet có thể thực hiện công việc. Tôi sẽ không giới thiệu bất kỳ vì tôi chưa thử chúng nhưng đây là một số liên kết:
http://www.codeproject.com/Articles/302405/The-Easy-way-of-changed-Collation-of-all-Database
Cập nhật đối chiếu của tất cả các trường trong cơ sở dữ liệu một cách nhanh chóng
http://www.sqlservercentral.com/Forums/Topic820675-146-1.aspx
Nếu bạn cần đối chiếu khác nhau trên hai đối tượng hoặc không thể thay đổi đối chiếu - bạn vẫn có thể JOIN
giữa chúng bằng cách sử dụng COLLATE
và chọn đối chiếu bạn muốn tham gia.
SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE Latin1_General_CI_AS
hoặc sử dụng đối chiếu cơ sở dữ liệu mặc định:
SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE DATABASE_DEFAULT