建立表語句 在資料庫 新增乙個表並對字段新增唯一約束。msdn上認為建唯一約束會自動建立相應的唯一索引。
view code
1插入測試sqluseadventureworks2012;2go
3create
table
production.transactionhistoryarchive44(
5 transactionid int
notnull, 6
constraint ak_transactionid unique
(transactionid)
7);
8go
view code
1這時候我寫的測試語句 當我第一次執行時 顯示 (1 行受影響) 資料庫資料正常insert
into[db
].[dbo
].[transactionhistoryarchive4
]2 ([
transactionid])
3values
4 (1)5
go
第二次執行語句時就會報錯
view code
1 訊息 2627,級別 14,狀態 1,第 1訊息2627是我需要的資訊。因為c#中提供了sqlexception來捕獲資料庫發生的異常。根據訊息id就可以判斷出錯誤型別 好久不寫ado**了行2 違反了 unique
key 約束 '
ak_transactionid
'。不能在物件 '
dbo.transactionhistoryarchive4
'中插入重複鍵。
3 語句已終止。
view code
1try2910
}11catch
(sqlexception sqlexception)
12
資料庫隔離級別
read uncommited 讀未提交 最低級別,可讀取未提交事物的資料,這會導致髒讀,比如 某時刻會話a修改了乙個資料,但還未提交,此時會話b,讀取了該資料,這是,會話a回滾了事物,這就導致資料出現了不一致狀態,這就是髒讀 read commited 提交讀 避免了髒讀,但會導致不可重複讀,例如...
資料庫隔離級別
資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀 不可重複讀 幻讀read uncommitted re...
資料庫隔離級別
資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...