2013-03-21 103 views
-1

我想运行一系列SQL INSERT语句。 问题是我想要一个全有或全无的方法。它们全部执行,或者如果其中一个不执行,则不对数据库进行任何更改。SQL - 保证执行所有语句

我能想到的唯一的解决办法是使用条件循环,但是这将意味着大量的冗余代码(决定作出修改,删除表等) 是否有一个简单的解决方案?

我已经广泛地寻找一个解决方案,但没有找到任何类似的问题,因此,如果道歉已经问过

+0

不管白痴决定否定这个问题而不给出理由? – Delvin 2013-04-05 14:57:25

回答

2

您需要使用Transaction,你可以找到一个MSDN例子here

+0

是的,这就是我所问的!不知道这个词... – Delvin 2013-04-05 14:57:52

0

幸运的是,一个好的数据库是一个具有四个ACID属性 - 原子,一致,集成和持久的属性。

第一个属性Atomic是指整个交易一次提交或完全不发生更改的交易行为。

阅读Korth的书“数据库系统概念”以供进一步参考。

如果您使用Oracle,MS SQL Server,MySQL,DB2等优秀的数据库,您只需要研究一下他们如何处理事务并将DML语句放在这些事务中。

了解Oracle的交易支持here

P.S.-看起来你在银行领域工作。这些人对这些事情心存疑虑。