2013-03-19 48 views
5

tôi nhận được lỗi này khi tôi chạy một truy vấn cập nhật trong Microsoft SQL Serverlà gì sự khác biệt giữa SQL_Latin1_General_CP1_CI_AS và SQL_Latin1_General_CP1_CI_AI

Không thể giải quyết mâu thuẫn đối chiếu giữa "SQL_Latin1_General_CP1_CI_AS" và "SQL_Latin1_General_CP1_CI_AI" trong bằng phẫu thuật.

truy vấn chỉ sử dụng 2 bảng, bảng đang cập nhật và bảng tạm thời mà nó tham gia bên trong, không có bảng nào xác định collation và cả hai đều trên cùng một cơ sở dữ liệu. cùng một collation kể từ khi nó phải là cơ sở dữ liệu mặc định một bên phải

nhìn vào collations, sự khác biệt duy nhất là ký tự cuối cùng, tất cả tôi hiểu về phần cuối là CI là viết tắt của Case Insensitive. nếu tôi bị đâm trong bóng tối, tôi sẽ nghĩ AI là viết tắt của Auto Increment nhưng tôi không biết AS là viết tắt của

Trả lời

11

AI là viết tắt của giọng không nhạy cảm (nghĩa là xác định nếu cafe = café). Bạn có thể sử dụng từ khóa đối chiếu để chuyển đổi một (hoặc cả hai) của các giá trị collations.
Xem link để biết thêm: http://msdn.microsoft.com/en-us/library/aa258237(v=sql.80).aspx

Ví dụ:

select * from r 
left outer join hr on hr.name = r.name COLLATE SQL_Latin1_General_CP850_CI_AI 
Các vấn đề liên quan