create proc test...
as
   ....
  if @@error <> 0
     return 1
  else
     return 0

解决方案 »

  1.   

    为什么不用on error?on error goto err_proc
    ...Err_Proc:
      msgbox "自定义的错误消息."
      

  2.   

    create proc test
    @sql varchar(1000)
    as
      exec(@sql)
      if @@error <> 0
         return 1
      else
         return 0
      

  3.   

    to 马可 这样sql还是要返回系统提示的错误to victorycyz :on error不好控制
      

  4.   

    to Rotaxe:
    试试:create proc test
    @sql varchar(1000)
    as
      exec(@sql)
      if @@error <> 0
         return 1
      else
         return 0exec test '12312312'
      

  5.   

    老大,VB中提供的错误处理机制好像只有 ON ERROR 吧。
      

  6.   

    感谢楼上的各位兄弟姐妹帮忙啊~~~
    问题还没解决;(
    头痛ing
      

  7.   

    改一下
    CREATE proc test
    @sql varchar(1000)
    as
    SET NOEXEC  on
      exec(@sql)
      if @@error <> 0
         return 1
      else
         return 0
    GO
    exec test '12312312'
    0
      

  8.   

    sorry,上面的不对。
    好像没有什么别的办法
      

  9.   

    必须要用on error屏蔽掉SQL本身的错误提示才行.
      

  10.   

    那么return 0 ,return 1之类不是没有必要了?
      

  11.   

    不知道SET NOEXEC ON 是不是可以;0
    帮助中说:
    当 SET NOEXEC 为 ON 时,Microsoft&reg; SQL Server&#8482; 编译每个批处理 Transact-SQL 语句但并不执行它们。当 SET NOEXEC 为 OFF 时,所有批处理将在编译后执行。在 SQL Server 中,语句的执行包括两个阶段:编译和执行。该设置可用于让 SQL Server 在执行 Transact-SQL 代码时,验证代码中的语法和对象名。它也可以用于调试通常是较大的批处理语句一部分的语句。SET NOEXEC 设置是在执行或运行时设置,而不是在分析时设置。但是我set off了也没有执行阿。。