我想运行一系列 SQL INSERT 语句。问题是我想要一种全有或全无的方法。它们要么全部执行,要么如果其中一个不执行,则不会对数据库进行任何更改。
我能想到的唯一解决方案是使用条件循环,但这意味着很多冗余代码(确定所做的更改、删除表等)是否有更简单的解决方案?
我已经广泛搜索了一个解决方案,但没有找到任何类似的问题,所以如果之前有人问过,我深表歉意
我想运行一系列 SQL INSERT 语句。问题是我想要一种全有或全无的方法。它们要么全部执行,要么如果其中一个不执行,则不会对数据库进行任何更改。
我能想到的唯一解决方案是使用条件循环,但这意味着很多冗余代码(确定所做的更改、删除表等)是否有更简单的解决方案?
我已经广泛搜索了一个解决方案,但没有找到任何类似的问题,所以如果之前有人问过,我深表歉意
你需要使用一个,你可以在这里Transaction
找到一个 MSDN 示例。
幸运的是,一个好的数据库具有四个 ACID 属性——原子、一致、集成和持久。
第一个属性 - 原子 - 指的是事务的行为,其中一次提交整个事务或根本不发生任何更改。
阅读 Korth 的《数据库系统概念》一书以供进一步参考。
如果您使用的是 Oracle、MS SQL Server、MySQL、DB2 等出色的数据库,您所要做的就是研究一下它们如何处理事务并将 DML 语句放入这些事务中。
在此处了解 Oracle 的事务支持。
PS-看起来你在银行领域工作。这些人对这些事情非常执着。