嘗試在MSSQL 2005以下:int值轉換爲char太小
select convert(char(2), 123)
這裏的關鍵是,CHAR(2)太小,無法接受值「123」。我希望在這裏看到一個截斷錯誤,但是會返回值「*」。
更新: 一些答案顯示瞭如何投射會導致錯誤的方式。這不是我所需要的。我們有很多代碼使用了一個特定的字段,這個字段曾經被聲明爲char(2),但之後被更改爲int。我的目標是確保沒有被轉換的代碼在遇到無法處理的數據時會崩潰。所以我們可以解決它。
有趣的是,dsolimano指出,將上述類型更改爲nchar會導致預期錯誤,並且Justin Niessner指出這兩者都是有意設計的。奇怪的不一致,因爲nchar是Unicode支持,嘿?
從我在這裏的答案,我似乎無法讓服務器拋出現有代碼的錯誤。
在我更改代碼以引發錯誤的情況比僅僅將它固定在第一位更沒有意義。但我真的很喜歡你的答案,因爲它向我展示了爲什麼會發生。 – 2010-06-30 14:40:29