Một đối chiếu có hai tác dụng:
- Đối-phi Unicode kiểu dữ liệu nó quyết định trang mã của dữ liệu, tức là nó xác định các ký tự bạn có thể lưu trữ trong cột/biến hoặc không phải là
- Đối với tất cả các loại dữ liệu, nó ảnh hưởng đến cách sắp xếp và so sánh dữ liệu, tức là ORDER BY và equality
Để tránh vấn đề với vấn đề đầu tiên, luôn lưu trữ và thao tác dữ liệu Unicode bằng cách sử dụng kiểu dữ liệu nchar/nvarchar, bởi vì sau đó bạn không phải lo lắng về collation anyway. Nó đòi hỏi nhiều không gian đĩa hơn, nhưng nó tránh được một số vấn đề thực sự khó xử, vì vậy đối với hầu hết mọi người, nó có thể là một sự cân bằng tốt.
Đối với vấn đề thứ hai, hãy sử dụng collation có ý nghĩa nhất cho cơ sở dữ liệu của bạn, tức là collation sắp xếp và so sánh dữ liệu theo cách bạn muốn thực hiện hầu hết thời gian? Ví dụ: nếu bạn biết rằng các so sánh phân biệt chữ hoa chữ thường sẽ quan trọng thì Latin1_General_CS_AS có thể là lựa chọn tốt hơn.
Và bạn luôn có thể sử dụng đối chiếu để xác định đối chiếu một cách rõ ràng nếu bạn cần kiểm soát tốt hơn các truy vấn cụ thể:
create table #t (name nvarchar(100))
insert into #t select N'Che'
insert into #t select N'Carlos'
insert into #t select N'Cruz'
select name from #t order by name collate Modern_Spanish_CI_AS
select name from #t order by name collate Traditional_Spanish_CI_AS
drop table #t
Nếu bạn không biết làm thế nào dữ liệu văn bản sẽ được sắp xếp hoặc so sánh và nếu người dùng của bạn don Không biết, hoặc, sau đó tôi sẽ chỉ ở lại với collation mặc định của bạn (và sử dụng Unicode!); trong trường hợp xấu nhất, bạn luôn có thể di chuyển dữ liệu đến một bảng mới với collation chính xác. Và có rất nhiều tài liệu về collations trong sách trực tuyến mà bạn nên có một cái nhìn vào.
quên đề cập rằng hệ điều hành mà chúng tôi sử dụng là cửa sổ bằng tiếng Tây Ban Nha, trong trường hợp quyết định đối chiếu phụ thuộc vào ngôn ngữ hệ điều hành – javier