经常出现:从数据类型 varchar 转换为 numeric 时出错。将可能出错的地方,改了,还是报错!要是可以像 Eclipse 那样 ,一步调试,就好了!省得查找麻烦!
不晓得 SQLSERVER 有没有这样的调试方法啊?

解决方案 »

  1.   

    没有见过,当然sql会提示在多少行多少列附近的
      

  2.   

    从数据类型 varchar 转换为 numeric 时出错
    那是发生了溢出。。
    低精度转高精度。。
      

  3.   

    可能numeric 精度问题,设高一点看看
      

  4.   

    NUMERIC(5,2)
    VARCHAR 1234.32这样肯定会报错了
      

  5.   

    可以根据错误提示信息找到出错的行还可以在不同的代码段增加print信息来“调试”
      

  6.   

    print信息来“调试”,jose说得就是查询分析器里调试最好办法
      

  7.   

    其实微软的Visual Studio可以调试的,建立一个数据库工程,然后找到你的存储过程进行调试。但是记得好像有什么问题,所以以前也没怎么用,有空研究一下。
      

  8.   

    用Visual Studio连接数据库可以调试存储过程
      

  9.   

    在某些地方加个print,你就可以知道错误是在哪里产生的呢
      

  10.   

    sqlserver2008自带调试功能。写好语句后就可以单步调试了
      

  11.   

    需要visual studio,不过像SQL的语句,调试也看不出什么问题的,意义不大。
    varchar 转换为 numeric 时出错,是不是含有非数字的字符?或者是精度问题?
      

  12.   


    我在写存储过程时,遇到很多次:从数据类型 varchar 转换为 numeric 时出错。
    一般,就是 在numeric(8,0) 或者其他 数值型 的变量 处,传入了 '' 或者不能被解析成数值的字母……
    还比较好找。不过,最近,遇到个错误却找了好久!create proc test
    @arr_sid   varchar(1000)
    as
    begin
    delete from t_table where sid in (@arr_sid)
    endexec test '1,2,3,4'  总是报 从数据类型 varchar 转换为 numeric 时出错 因为,当时,传入很多参数,存储过程本身也很庞大。 就没想到 '' 的关系。
    吃一堑长一智啊!  
      

  13.   

     select * from TABLE where ISNUMERIC(列名)=0