SQL Server靈異現象 image類型不能比較

今天遇到很邪門的茶包,故事是這樣的:我要修改兩隻SQL SERVER的SessionState的SP,一隻是[dbo].[TempInsertStateItemLong]、一隻是[dbo].[TempInsertStateItemShort],這兩隻都是新增Session進DB時會用到的SP,差別只是Session序列化後長度小於7000會存到欄位[SessionItemShort](varbinary(7000)),反之則是[SessionItemLong](image),我希望讓他們在新增資料前先清除原本相同的值,但TempInsertStateItemLong卻跑出詭異的錯誤(注意下圖highlight的地方):


發現了嗎???image類型居然不相容同樣也是image類型的變數,這錯誤嚇的讓我想買包綠色乖乖回坐位上的電腦放....
如果說NText不相容NVarChar(max)我能理解,畢竟雖然類似但字完全不一樣,但.....
equal to 運算子中的資料類型 image 和 image 不相容。


WTF.....

微軟你認真的嗎???
最後只好把原本的where SessionItemLong=@itemLong  改成
Where CAST( SessionItemLong as varbinary(max))=CAST( @itemLong as varbinary(max))
唉......好雷~

留言