今天遇到很邪門的茶包,故事是這樣的:我要修改兩隻SQL SERVER的SessionState的SP,一隻是[dbo].[TempInsertStateItemLong]、一隻是[dbo].[TempInsertStateItemShort],這兩隻都是新增Session進DB時會用到的SP,差別只是Session序列化後長度小於7000會存到欄位[SessionItemShort](varbinary(7000)),反之則是[SessionItemLong](image),我希望讓他們在新增資料前先清除原本相同的值,但TempInsertStateItemLong卻跑出詭異的錯誤(注意下圖highlight的地方):
如果說NText不相容NVarChar(max)我能理解,畢竟雖然類似但字完全不一樣,但.....
equal to 運算子中的資料類型 image 和 image 不相容。
微軟你認真的嗎???
最後只好把原本的where SessionItemLong=@itemLong 改成
Where CAST( SessionItemLong as varbinary(max))=CAST( @itemLong as varbinary(max))
唉......好雷~
留言
張貼留言