小编seb*_*red的帖子

DB2 SQL脚本:如何启动事务并在出错时回滚

我正在为DB2数据库(V9.5)实现一个SQL脚本,以便添加列并重新组织数据.我想从linux命令行执行脚本:

$ db2 -vstf migration.sql
Run Code Online (Sandbox Code Playgroud)

所有语句migration.sql都应包含在事务中.如果一个语句失败,则必须回滚所有先前的更改.我怎样才能做到这一点?我尝试使用START TRANSACTION但在这种情况下DB2返回语法错误.

migration.sql

    connect to ...        

    -- not accepted by DB2
    START TRANSACTION; 

    update ... set ... 
    alter table ... 

    COMMIT;

    connect reset;
    terminate;
Run Code Online (Sandbox Code Playgroud)

此外,我试图关闭自动提交的描述在这里:

  • db2 +c -vstf migration.sql (在脚本中打开连接时不起作用)
  • 添加update command options using c off到migration.sql(错误时不回滚任何内容)

那么,是否有人想要按预期在db2命令行上运行事务和回滚?如果没有,它是否适用于Java/JDBC?

sql db2 transactions rollback

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

db2 ×1

rollback ×1

sql ×1

transactions ×1