存储过程出错但手动运行时没有错误

时间:2016-08-04 13:31:08

标签: sql-server stored-procedures

我有一个创建xml文件的存储过程。当我运行它时,我收到错误

  

转换varchar值时转换失败'此处的某些文字'到int

如果我在SSMS的查询窗口中放入相同的代码并执行它,它可以正常工作 - 没有错误。

有人能告诉我为什么会发生这种情况?这个过程足够长,可以在这里发布,它主要是一个包含大量联合和联接的巨大选择。

谢谢!

1 个答案:

答案 0 :(得分:0)

连接中某个列中的某个位置是将varchar与整数进行比较,并且至少有一个varchar值不是整数。

请尝试以下测试:

select *
    from table
    where myCol NOT LIKE '%[^0-9]%'

也许

select *
    from table
    where CONVERT (bigint, myCol) NOT BETWEEN -2147483648 AND 2147483647

摇动树,看看有什么东西掉下来。