ACID 屬性
代表了不可分性、一致性、隔離性和持久性。
不可分性(原子性):在一個操作中涉及兩個或兩個以上獨立的資訊,這些資訊要麼全部提交,要麼一個也不提交。
一致性:操作要麼建立新的有效資料狀態,要麼(如果發生任何錯誤的話)將所有資料返回到初始狀態。
隔離性:操作在沒有提交並不與別的任何操作發生任何關係。
持久性:即使發生錯誤重新啟動,儲存過的已經提交的資料在正確狀態下仍然有效。
相同串連中資料庫事務實現方式:資料庫實現與Ado.Net實現
執行個體一:資料庫中事務實現方式
create database DataBaseExample
go
use DataBaseExample
go
create table Table1
(
test varchar(20)
)
go
create table Table2
(
test varchar(20)
)
create proc TransExample
as
begin transaction
declare @error1 int,@error2 int
insert into table1 values('test1Table1')
select @error1=@@error
insert into table2 values('test2Table1')
select @error2=@@error
if(@error1=0 and @error2=0)
commit transaction
else
rollback transaction
execute TransExample
select * from Table1,Table2
執行個體二:Ado.Net中事務實現方式
using (SqlConnection conn = new SqlConnection("server=.;database=databaseexample;uid=sa;pwd=sa"))
{
conn.Open();
SqlTransaction trans = conn.BeginTransaction();
try
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection=conn;
cmd.Transaction = trans;
cmd.CommandText = "insert into table1 values('test1Table1')";
cmd.ExecuteNonQuery();
cmd.CommandText = "insert into table2 values('test2Table1')";
cmd.ExecuteNonQuery();
trans.Commit();
}
}
catch
{
trans.Rollback();
}
}