Breaking News
Loading...
01/02/2014

Về collation trong SQL Server

Collation định nghĩa các rule về việc data được sắp xếp hay so sánh như thế nào, có phân biệt hoa thường hay không.

Đây là định nghĩa tiếng Anh của collation:

Database collation defines how SQL Server handles character and Unicode data, suchas case-sensitivity, sort order, and code page.

Ví dụ, nếu ta cấu hình collation trong 1 database là phân biệt hoa thường (case-sensitive), thì câu lệnh sau sẽ không trả về những record có giá trị là 'ALL'

SELECT *
FROM Product
WHERE Number LIKE ‘all’;

Có 3 cấp độ để cấu hình collation trong SQL Server:

  1. Instance level
  2. Database level
  3. Column level
Nếu ta muốn thay đổi collation của 1 SQL Server instance, ta phải rebuild lại master database, nên backup master database trước khi làm điều này.

Dùng cmd đi đến ổ đĩa cài đặt SQL Server và dùng lệnh sau:

setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=
/SQLSYSADMINACCOUNTS= /SAPWD= /SQLCOLLATION=

Nếu muốn thay đổi collation cho database, ta dùng lệnh sau:

ALTER DATABASE Sales COLLATE SQL_Latin1_General_CP1_CI_AS
Tuy nhiên, lưu ý là câu lệnh trên sẽ không thay đổi collation của tất cả column trong table này, mà ta phải export data ra, rồi thay đổi collation cho mỗi column cho mỗi table, rồi import lại.

Một ví dụ khác nếu ta muốn đổi collation cho một column
ALTER TABLE dbo.Collections2
ALTER COLUMN CollectionName varchar(50) COLLATE Japanese_CS_AI;

0 comments:

Post a Comment

 
Toggle Footer