วันพฤหัสบดีที่ 18 กรกฎาคม พ.ศ. 2556

SQL Server Collation ของ database

Collation คือชนิดรหัสตัวอักษรที่เก็บใน database มีเยอะมากเช่นของภาษาไทยก็มีหลายแบบ

THAI_BIN
THAI_BIN2
THAI_CI_AS
THAI_CI_AI
THAI_CS_AS
THAI_CS_AI


ต่างกันอย่างไร ดูการทดสอบได้จาก Link นี้

LAB TEST : ความแตกต่างของ SQL THAI Collation แต่ละแบบ

เป็นสิ่งจำเป็นมาก ที่ต้องกำหนดค่า Collation ของ database ให้ถูกต้องในครั้งแรกที่ สร้าง Database  เวลาสร้าง table ต่าง ๆ ก็จะได้ Collation เป็นชนิดเดียวกับ database

ปัญหาที่พบเวลา join ระหว่าง TABLE ที่ Collation ต่างกันก็จะเกิด Error

Cannot resolve collation conflict for equal to operation

วิธีแก้

1. แก้ไข Collation ให้เหมือนกัน
2. ใน คำสั่ง sql ให่ใส่ Collation ลงไปด้วย

เช่น
...and column1=(other_table.column1 COLLATE SQL_Latin1_General_CP1_CI_AS) 

หรือ
....column1=(other_table.column1 COLLATE Latin1_General_CI_AS)




3 ความคิดเห็น: