Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Không thể giải quyết xung đột đối chiếu

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo bảng tạm thời trong SQL Server

  2. Làm cách nào để thay đổi cơ sở dữ liệu mặc định của tôi trong SQL Server mà không cần sử dụng MS SQL Server Management Studio?

  3. Phát hiện các phạm vi ngày liên tiếp bằng SQL

  4. Làm thế nào để chạy một thủ tục được lưu trữ trong máy chủ sql mỗi giờ?

  5. Làm cách nào để chuyển giá trị cho một tham số thủ tục được lưu trữ trong thành phần Nguồn OLE DB?