在 MSSQL 2005 上尝试以下操作:
select convert(char(2), 123)
这里的关键是 char(2) 太小而无法接受值 '123'。我希望在这里看到截断错误,而是返回值“*”。
更新: 一些答案显示了如何以会导致错误的方式进行投射。这不是我真正需要的。我们有很多使用特定字段的代码,这些字段曾经被声明为 char(2),但后来被更改为 int。我的目标是确保未转换的代码在遇到无法处理的数据时会崩溃。所以我们可以去修复它。
有趣的是,dsolimano指出将上述类型更改为 nchar 会导致预期的错误,而Justin Niessner指出这两者都是设计使然。奇怪的不一致,因为 nchar 是为了支持 Unicode,嘿?
从我在这里得到的答案看来,我很遗憾无法让服务器为现有代码抛出错误。