บางคนอาจจะเคยเจอเหมือนที่ผมเจอวันนี้ คือ select ด้วยการ join กัน ใน MSSQL แล้ว ขึ้น error "Cannot resolve collation conflict for equal to operation." เพราะการ set collation ที่ต่างกันระหว่าง database, table หรือ field ทำให้ไม่สามารถใช้ operation โดยตรงได้
ผมก็เลยเข้าไป Google หาข้อมูลดู ซึ่งการแก้ปัญหาที่ตรงจุดคือ แก้ collation ให้ตรงกันทั้ง 2 ฟากนั่นเอง แต่สำหรับผมแล้ว มันเป็นงานช้างไปในทันที แต่ก็ยังโชคดี ที่เจอ solution แบบง่ายๆ คือใช้ แบบนี้ครับ
SELECT ID
FROM ItemsTable
INNER JOIN AccountsTable
WHERE ItemsTable.Collation1Col COLLATE DATABASE_DEFAULT
= AccountsTable.Collation2Col COLLATE DATABASE_DEFAULT
ง่ายๆแค่นี้เองครับ แต่ใช้ได้ผลจริงๆ งานนี้ขอขอบคุณเจ้าของบทความที่ไปเจอมาวันนี้ครับ http://blog.sqlauthority.com/2007/06/11/sql-server-cannot-resolve-collation-conflict-for-equal-to-operation/
วันพุธที่ 15 กันยายน พ.ศ. 2553
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
0 ความคิดเห็น:
แสดงความคิดเห็น