Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

Transact-SQL 兼容性

Transact-SQL 过程中的错误处理


Watcom-SQL 方言中的缺省过程错误处理方式不同于 Transact-SQL 方言中的缺省过程错误处理方式。缺省情况下,Watcom-SQL 方言过程在它们遇到错误时退出,并且将 SQLSTATE 值和 SQLCODE 值返回到发出调用的环境中。

显式的错误处理可以使用 EXCEPTION 语句来置入到 Watcom-SQL 存储过程中,或者,您可以使用 ON EXCEPTION RESUME 语句指示该过程在遇到错误时从下一个语句继续执行。

当 Transact-SQL 方言过程遇到错误时,将从下一个语句继续执行。全局变量 @@error 保存最近执行过的语句的错误状态。您可以在语句之后检查这一变量,以强制从过程中返回。例如,以下语句在出错时将导致退出。

IF @@error != 0 RETURN

当该过程执行完之后,返回值将表明该过程是成功还是失败。此返回状态是一个整数,并且可以按如下方式对其进行访问:

DECLARE @status INT
EXECUTE @status = proc_sample
IF @status = 0
   PRINT 'procedure succeeded'
ELSE
   PRINT 'procedure failed'

下表介绍了内置的过程返回值以及这些值的含义:

含义
0 过程执行时没有发生错误
–1 缺少对象
–2 数据类型错误
–3 进程被选作死锁牺牲品
–4 权限错误
–5 语法错误
–6 杂类用户错误
–7 资源错误,如空间不足
–8 非致命的内部问题
–9 达到系统限制
–10 致命的内部不一致性
–11 致命的内部不一致性
–12 表或索引损坏
–13 数据库损坏
–14 硬件错误

RETURN 语句可用于返回其它整数,由用户定义它们的含义。


在过程中使用 RAISERROR 语句
Watcom-SQL 方言中与 Transact-SQL 类似的错误处理

Collection Contents 上一页 下一页 PDF