在SQL下指令時,有時會用到TempTable來做資料暫存的處理,今日就碰巧TempTable的問題。
錯誤訊息是
「Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Chinese_Taiwan_Stroke_CI_AS" in the equal to operation.」
錯誤代碼是 468
上網搜尋一下資料,推測應該是TempTable的所產生的資料與當前資料定序不符
解決方式
在要撈出資料的欄位後方加入
COLLATE DATABASE_DEFAULT
這段語法的意思是,把資料庫的定序莫認為當前資料庫定序,也就順勢化解了原先的問題
實際範例
SELECT *
FROM dbo.XXX WITH(NOLOCK)
WHERE Code IN
(
SELECT Code COLLATE DATABASE_DEFAULT FROM #ExpiringCode
)
搜尋關鍵字「SQL 468」
歡迎您的加入,讓這個社群更加美好!