2013-03-21 76 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.-看起來你在銀行領域工作。這些人對這些事情心存疑慮。