“sql2000执行存储过程的时候提示:消息:25 ,级别25, 状态3,过程*****,第196行,将截断二进制字符串”这个是往表插入记录时,有些字段的值的长度超出了列的定义长度,这个具体怎么去看是第几行的错误?错误提示里面显示的是196行但是实际上不是196行里面的字段长度的问题,请问还有其他的方方来准确的定位行数吗?

解决方案 »

  1.   

    那个报错只是大概,往往不准,但是也基本上就在附近,这种情况我猜测你应该去检查你的临时表建表的语句那部分。
    可以把每个字段只占一行这样显式,然后用二分法,先把前半段注释掉,修改插入语句,然后执行,如果没报错,那问题就在后半段,然后把后半段中的前一半再注释,再检查,如此类推,不用很多次就可以找到哪个字段定义太短了。另外,重点检查varchar/char/nvarchar/nchar这些字段。
      

  2.   

    把存储过程的内容调出来,参数定义变量,然后赋值,内容用sql语句直接执行,不要直接执行存储过程,就可以看出来哪里错了