更新日期:2024年09月11日
使用 DBACCNOIGN 环境变量,
可以指定在发生指定的错误时 DB-Access 实用程序的行
为。
如果在以下某种情况下发生错误,
那么 DBACCNOIGN 环境变量会影响 DB-Access 实用
程序的行为:
•
以非菜单方式运行 DB-Access。
•
仅在 GBase 8s 中,以菜单方式通过 DB-Access 执行 LOAD 命令。
如果在上述任一情况下运行 DB-Access 实用程序时发生错误,
请将 DBACCNOIGN 环境
变量设置为 1,以回滚未完成的事务。
例如,假定 DB-Access 运行以下 SQL 命令:
DATABASE mystore
BEGIN WORK
INSERT INTO receipts VALUES (cust1, 10)
INSERT INTO receipt VALUES (cust1, 20)
INSERT INTO receipts VALUES (cust1, 30)
UPDATE customer
SET balance =
(SELECT (balance-60)
FROM customer WHERE custid = 'cust1')
WHERE custid = 'cust1
COMMIT WORK
此处有一条语句的表名拼写错误:receipt 表不存在。如果未在环境中设置
DBACCNOIGN,那么 DB-Access 会将两条记录插入到 receipts 表中,并更新 customer
表。现在 customer balance 的减少量超过了插入的 receipts 的总和。
但如果将 DBACCNOIGN 设置为 1,那么会打开消息,指示 DB-Access 回滚了所有
INSERT 和 UPDATE 语句。这些消息还会标识错误原因,以便您能够解决问题。
设置 DBACCNOIGN 时的 LOAD 语句示例
可在执行 LOAD 语句期间设置 DBACCNOIGN 环境变量来保护数据完整性,即使
DB-Access 以菜单方式运行 LOAD 语句也是如此。
假定您从 DB-Access SQL 菜单执行 LOAD 语句。正确装入了 49 行数据,但第 50
行数据包含无效值,
因而导致错误。
如果将 DBACCNOIGN 设置为 1,
那么数据库服务器
GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 146 -
不会将先前的 49 行插入到数据库中。如果未设置 DBACCNOIGN,那么数据库服务器会
插入前 49 行。