你可以考虑用下面两个函数来判断可以转换成什么类型isdate()  --判断是否可以转换成日期,如果可以,返回1,否则返回0
isnumeric()  --判断是否可以转换成数字,如果可以,返回1,否则返回0

解决方案 »

  1.   

    给你个例子参考一下
    create table yourtable( id int)
    go
    insert into yourtable values('sdf')if @@error<>0
    goto AAAA:
    print 'error'测试结果(1 row(s) affected)error
      

  2.   

    ...
    if @@error<>0 goto err
    ...
      

  3.   

    用if @@error<>0 goto errorhandle
      

  4.   

    但是如果是我在 declare @ProNo Char(10)
    select @ProNo = '15,33' declare @t int select @t = convert(int ,@ProNo)
    if (@@error=0)
    select 'yes'
    else
    select 'no'在转换的这步好像就不能执行下去了,
    提示:
    服务器: 消息 245,级别 16,状态 1,行 6
    将 varchar 值 '15,33     ' 转换为数据类型为 int 的列时发生语法错误。
    而我的意思是要执行下面的select yes/no语句
      

  5.   

    这样试试!
    declare @ table(id varchar(2))
    insert @ select 'wrsdfsdf' if (@@error=0)
    select 'yes'
    else
    select 'no'
    结果为no
      

  6.   

    最后还是解决了,不过还是用了zjcxc(: 邹建 :) 的方法,用isnumeric,不过还是希望能找到用出错处理的办法解决。按照几位给出的用@@Error处理的办法在转换的时候没办法弄,没办法执行到数据回滚前就出错了,总是会有几条出错的数据,不过还是感谢大家