資料庫級別判斷資料重複

2022-07-15 21:39:12 字數 1036 閱讀 4110

建立表語句 在資料庫 新增乙個表並對字段新增唯一約束。msdn上認為建唯一約束會自動建立相應的唯一索引。

view code

1

useadventureworks2012;2go

3create

table

production.transactionhistoryarchive44(

5 transactionid int

notnull, 6

constraint ak_transactionid unique

(transactionid)

7);

8go

插入測試sql   

view code

1

insert

into[db

].[dbo

].[transactionhistoryarchive4

]2 ([

transactionid])

3values

4 (1)5

go

這時候我寫的測試語句 當我第一次執行時 顯示  (1 行受影響) 資料庫資料正常

第二次執行語句時就會報錯

view code

1  訊息 2627,級別 14,狀態 1,第 1

行2 違反了 unique

key 約束 '

ak_transactionid

'。不能在物件 '

dbo.transactionhistoryarchive4

'中插入重複鍵。

3 語句已終止。

訊息2627是我需要的資訊。因為c#中提供了sqlexception來捕獲資料庫發生的異常。根據訊息id就可以判斷出錯誤型別 好久不寫ado**了

view code

1

try2910

}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...