2010-07-21 50 views
26

Gần đây tôi đã cài đặt SQL Server 2008 và tôi đã chọn đối chiếu là trường hợp nhạy cảm. Tôi muốn làm cho nó không phân biệt chữ hoa chữ thường cho toàn bộ cá thể (không phải cho một cơ sở dữ liệu trong cá thể đó). Nếu tôi thay đổi collation hiện nó ảnh hưởng đến bất kỳ cơ sở dữ liệu hiện có? Nếu vậy, theo cách nào?Việc thay đổi collation SQL Server thành trường hợp không nhạy cảm với phân biệt chữ hoa chữ thường?

Trả lời

47

Bạn về cơ bản cần chạy lại cài đặt để xây dựng lại cơ sở dữ liệu master với collation mới. Bạn không thể thay đổi đối chiếu toàn bộ máy chủ theo bất kỳ cách nào khác.

Xem:

Cập nhật: nếu bạn muốn thay đổi collation của một cơ sở dữ liệu, bạn có thể nhận được collation hiện tại bằng cách sử dụng đoạn mã T-SQL này:

SELECT name, collation_name 
FROM sys.databases 
WHERE name = 'test2' -- put your database name here 

này sẽ mang lại một cái gì đó có giá trị như:

Latin1_General_CI_AS 

Các _CI có nghĩa là "trường hợp nhạy cảm" - nếu bạn muốn trường hợp nhạy cảm, sử dụng _CS vào chỗ của nó:

Latin1_General_CS_AS 

Vì vậy T của bạn Lệnh SQL sẽ là:

ALTER DATABASE test2 -- put your database name here 
    COLLATE Latin1_General_CS_AS -- replace with whatever collation you need 

Bạn có thể nhận danh sách tất cả các collations sẵn có trên máy chủ bằng cách sử dụng:

SELECT * FROM ::fn_helpcollations() 

Bạn có thể thấy chiếu hiện hành máy chủ bằng cách sử dụng:

SELECT SERVERPROPERTY ('Collation') 
+0

Ok, cảm ơn thông tin. Bây giờ ít nhất tôi muốn thử thay đổi collation của cơ sở dữ liệu để làm cho nó không phân biệt chữ hoa chữ thường. Tôi đã tìm thấy 'ALTER DATABASE DEV_DB COLLATE [khóa không phân biệt chữ hoa chữ thường] này cho cùng một giá trị. Nhưng không chắc chắn về giá trị được sử dụng cho trường hợp không nhạy cảm. Bất kỳ sự trợ giúp nào trong đó đều đáng cảm ơn! – JPReddy

2

Bạn có thể làm điều đó nhưng những thay đổi sẽ ảnh hưởng đến dữ liệu mới được chèn vào cơ sở dữ liệu. Về lâu dài theo như đề xuất ở trên. Ngoài ra còn có một số thủ thuật nhất định bạn có thể ghi đè lên collation, chẳng hạn như các tham số cho các thủ tục hoặc hàm được lưu trữ, các kiểu dữ liệu bí danh và các biến được gán cho collation mặc định của cơ sở dữ liệu. Quay lại đầu trang |||||||||||||||||||||||||||||||||||||||||||||||| Để thay đổi collation của một loại bí danh, bạn phải thả các bí danh và tái tạo nó.

Bạn có thể ghi đè đối chiếu mặc định của chuỗi ký tự bằng cách sử dụng mệnh đề COLLATE. Nếu bạn không chỉ định collation, chữ được gán cho collation mặc định của cơ sở dữ liệu. Bạn có thể sử dụng DATABASEPROPERTYEX để tìm collation hiện tại của cơ sở dữ liệu.

Bạn có thể ghi đè máy chủ, cơ sở dữ liệu hoặc đối chiếu cột bằng cách chỉ định collation trong mệnh đề ORDER BY của câu lệnh SELECT.

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