資料庫完整性高階約束的應用
資料完整性,約束
資料完整性:資料庫中儲存 的資料是可靠的、準確的、能夠正確反應實際情況
1、資料庫中要求保持資料的完整性。
2、資料庫中存在不正確、不準確的資料就認為資料庫「失去了完整性」。
3、資料庫「失去了完整性」引起的原因,大多是處於設計引起的。
4、保證資料完整性的方法,使用約束
約束:sql server用來強制資料完整性的機制(方法)
1、約束目的:保證資料庫中資料的質量,即保證資料完整性。
2、約束和資料完整性的比較
3、如何使用約束:sql server 建立表的過程是規定資料列的屬性的過程,也是實是資料完整性約束的過程。
建立表:建立約束=強制資料的完整性
建立表的過程,就是建立約束。
域完整性 == 列完整性
not null
default
check
實體完整性:就是有重複的記錄
identity,guid
primary key
unique
引用完整性:約束方法;外來鍵約束
foreign key
check
自定義完整性:
缺點:麻煩寫**
優點:靈活
方法:規則,儲存過程,觸發器
************************************
事務目標
事務的概念
事務的分類
1、自動提交事務
是sql server的預設模式,每條單獨的t=sql語句都是乙個事務,如果成功執行則自動提交:如果錯誤則自動回滾,不需要顯示地寫出事務的開始和結束的標誌。
2、顯式事務
用begin tran[saction]明確指定事務的開始,
以commit 或 rollback 語句顯式結束,這是最常用的事務型別,
例1:begin tran
update authors set an_lname ='a' where au_id ='172-32-1176'
commit tran
--rollback tran
3、隱性事務
用set implicit transactions on將隱性事務模式設定為開啟,在前乙個事務完成時新事務隱式啟動,每個事務仍以commit或rollback語句顯式結束。
例2:create table q(q1 int primary key, q2 char(3)
set implicit_transcations on
on insert into q values (1,'aaa')
insert into q values (2,'bbb')
commit transaction
insert into q values (3,'ccc')
select * from q
commit transaction
set implicit_transactions off;
如何建立事務
t-sql定義事務語句有l
1、開始事務:begin tran[saction]
2、提交事務:commit tran[saction]
3、回滾事務:rollback tran[saction]
判頓某條語句執行是否出錯:
1、使用全域性變數@@error
@@error只能判斷當前一條t-sql語句只想是否有錯
為了判但事務中所有t-sql語句是否有錯,我們需要對錯誤進行累計:
如:set @errorsum =@errorsum+@@error
週六野香山
組織者 報名方式 以跟貼為主 活動地點 香山 集合地點 香山郵局門口 香山郵局 904終點下車後前走50公尺既是 香山停車場上邊,要是實在找不到就問問,反正別問我,俺不繫當地人 人數限制 6人以上 報名方式 所有參加活動的隊員必須事先報名。可以跟貼 簡訊報名,但拒絕 諮詢!不留 者報名無效!行程安排...
2018 12 8 週六作業
int a int t for int i 0 ia j 1 for int x a scanner input new scanner system.in system.out.print 請輸入數字 int n input.nextint if b n else static boolean b...
平凡得週六 3 23
凌晨回去,寢室的人竟然在積極學習,不容易啊。想了想lj,這個真的挺好的,然後想了想,其實現在也只能這樣斷斷續續了。找不到話題,以及我沒有時間。剛剛問了趙總,他說也不用一直陪女朋友,我希望也是這樣,畢竟不能被愛情綁架了。想了想她應該沒心裡也蠻糾結的,乙個是她老公毛不易,乙個是屌絲,這屌絲還挺好的。從很...