2011-09-05 25 views

回答

3

不,這不是必需的。每個Sql語句都有一個隱式事務。但是,如果默認事務不是最優的 - 比如Read Uncommitted會更好 - 或者如果您有多個讀取並且您希望數據保持一致 - 比如單獨的對於摘要和細節的聲明以及您想要的要彙總的細節。

+0

您能詳細闡述一下使用事務來保證返回的數據是一致的嗎?即交易如何在需要返回2個結果集並且彙總 - 總結和詳細信息必須匹配的情況下提供幫助? – Icarus

+2

如果有其他用戶連接到數據庫,則可能其中一個用戶正在更改您正在閱讀的實例所讀取的數據。如果有兩個命令,例如'Select Sum(BalanceDue)From Invoice Where CustomerId = 414',後面跟着'Select * From Invoice Where CustomerId = 414'並且您不希望另一個用戶的交易改變這兩個命令之間的值。當然,這是通過在該記錄上放置一個會影響性能的讀鎖來實現的。 – DevDelivery

+0

我不同意「不,這是沒有必要的」。根據您在評論中給出的原因,您可能需要根據所需的一致性進行調整。 – Joe

1

不,不需要這樣做。僅當您想從插入/更新/刪除操作中的錯誤中恢復時才需要事務。如果你看不懂東西,運氣不好,但數據完整性不會受到影響。

相關問題