我遇到了一个有趣的存储过程,我需要你的帮助来解决这个问题。
基本上,存储过程SELECT
sWHERE
的条件是:
WHERE SomeType = 2
SomeType
是一char(3)
列,其中包含诸如'1','2','AA','AB'
etc之类的值。
当我在 SSMS 中运行存储过程时,它失败了:
消息 245,级别 16,状态 1,第 1
行将 varchar 值“AA”转换为数据类型 int 的列的语法错误。
但是,当我通过生产中的应用程序使用该存储过程时,它会毫无问题地返回数据。
我的问题是,这怎么可能?