2010-01-06 42 views
5

Làm thế nào để bạn thiết lập một SQL Server 2005 DBMS, để bạn có thể lưu trữ dữ liệu bằng các ngôn ngữ khác nhau?Hỗ trợ dữ liệu đa ngôn ngữ của SQL Server

Vấn đề chính xác của tôi là: trong SQL Server Management Studio Tôi đang viết một câu lệnh chèn có chứa Umlauts của Đức. Văn bản được lưu thành công nhưng đọc cùng một kết quả giá trị trong văn bản mà không có Umlaut.

Hãy xem xét rằng tôi phải hỗ trợ 4 ngôn ngữ: tiếng Anh, tiếng Đức, tiếng Hy Lạp & tiếng Nga (Tôi không muốn nghĩ những gì tôi sẽ phải đối mặt với văn bản tiếng Nga).

DBMS hiện được thiết lập với đối chiếu Hy Lạp (để hỗ trợ tiếng Hy Lạp).

Điều này có gây ra bất kỳ sự cố nào không ??

Bất kỳ gợi ý nào ??

Trả lời

5

Bạn cần phải sử dụng kiểu dữ liệu nvarchar cho các chuỗi (http://msdn.microsoft.com/en-us/library/ms186939.aspx) và bạn cũng cần phải đặt trước tất cả các chuỗi unicode với N (http://support.microsoft.com/kb/239530).

Khi xử lý các hằng số chuỗi Unicode trong SQL Server, bạn phải đặt trước tất cả chuỗi Unicode có chữ cái viết hoa N, như được ghi trong chủ đề "Sử dụng dữ liệu Unicode" trong SQL Server Books Online. Tiền tố "N" là viết tắt của ngôn ngữ quốc gia trong tiêu chuẩn SQL-92, và phải là chữ hoa. Nếu bạn không đặt trước một hằng số chuỗi Unicode với N, SQL Server sẽ chuyển đổi nó thành trang mã không phải Unicode của cơ sở dữ liệu hiện tại trước khi nó sử dụng chuỗi.

2

bạn đang sử dụng nvarchar loại (chứ không phải là varchar)? sẽ được đề xuất nếu bạn có nhiều lang trong cùng một cột. điều đó sẽ cho phép bạn lưu trữ và truy xuất đúng cách.

tất nhiên, sql máy chủ chỉ có thể duy trì một loại chiếu trên một cột cụ thể, ngay cả khi cột đang được sử dụng để lưu trữ các chuỗi trong nhiều ngôn ngữ, vì vậy đó là một cái gì đó để xem xét ...

Các vấn đề liên quan