当一个表有几十万数据
用个自定义函数处理某列:
select uf_myFunc(col) from tb 
报错: 
Msg 8114, Level 16, State 5, Line 258
从数据类型 nvarchar 转换为 float 时出错。
请问该如何用DEBUG快速定位到出错的数据?另有哪些方法?

解决方案 »

  1.   

    确定可能数据出问题?
    那你用 select top 100 uf_myFunc(col) from tb 这种方式吧。我猜测是uf_myFunc返回值类型和定义返回类型不匹配的缘故。
      

  2.   

    select col from tb  WHERE ISNUMERIC(col) = 0    通过ISNUMERIC系统函数可以判断一下是否可以转换为数字,将不能转换为数字的行查出来进行处理就OK了
      

  3.   

    我关注这样的问题也好久了~~
    您可以试试把数据导出excel,然后把那列转成小数格式。看表格也许会快些~~~
      

  4.   

    谢谢,是个方法,但好像仅仅限于某些具体问题,若是自定义函数报其它类型错误也许就不适用了。
    我想知道SQLSERVER的DEBUG能否做到行的级别。这样在调试自定义函数时可以迅速定位问题。
      

  5.   

    函数里有限制,无法进行增删改,连print都不行
      

  6.   

    select col from tb WHERE ISNUMERIC(col)=0