新聞中心
一.觸發(fā)器
站在用戶的角度思考問題,與客戶深入溝通,找到文水網(wǎng)站設(shè)計與文水網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋文水地區(qū)。
觸發(fā)器是一種實施復(fù)雜數(shù)據(jù)完整性的特殊存儲過程,在對表或視圖執(zhí)行update、insert或delete語句時自動觸發(fā)執(zhí)行,以防止對數(shù)據(jù)進(jìn)行不正確、未授權(quán)或不一致的參數(shù)。
/*創(chuàng)建觸發(fā)器*/ creat [temp|temporary] trigger name [before|after] [insert|update|delete of columns] on table begin SQL語句 end;
觸發(fā)器能夠維持兩個表間的參照完整性,就像外鍵一樣。外鍵執(zhí)行這個任務(wù)的效率更高,因為它們在數(shù)據(jù)改變之前被測試,而不像觸發(fā)器在數(shù)據(jù)改變后才觸發(fā)。
二.索引
(1)定義:
索引是數(shù)據(jù)庫的對象之一,索引是為了加速對表中數(shù)據(jù)行的檢索而創(chuàng)建的一種分散的一種存儲結(jié)構(gòu)。
索引是針對一個表而建立的,它是由數(shù)據(jù)頁面以外的索引頁面組成的
create unique clustered index book_id_index--惟一性聚簇索引 on book(book_id asc) with fillfactor=50 /*填充因子50%*/
(2)索引的分類
聚簇索引
數(shù)據(jù)表的物理順序和索引表的順序相同,它根據(jù)表中的一列或多列值的組合排列記錄
create unique clustered index book_id_index--惟一性聚簇索引 on book(book_id asc) with fillfactor=50 /*填充因子50%*/
b. 非聚簇索引
create nonclustered index student_course_index on student_course(student_id asc,course_id asc) with fillfactor=50
三.事務(wù)
(1)定義:
事務(wù)是指一個操作序列,這些操作序列要么都被執(zhí)行,要么都不被執(zhí)行,它是一個不可分割的工作單元。
(2)語法步驟:
事務(wù)開始:BEGIN TRANSACTION
事務(wù)提交:COMMIT TRANSACTION
事務(wù)回滾:ROLLBACK TRANSACTION
判斷某條語句執(zhí)行是否出錯:全局變量@@ERROR;
@@ERROR只能判斷當(dāng)前一條T-SQL語句執(zhí)行是否有錯,為了判斷事務(wù)中所有T-SQL語句是否有錯,我們需要對錯誤進(jìn)行累計; 例:SET @errorSum=@errorSum+@@error
四.存儲過程
(1)定義:
存儲過程是一系列預(yù)先編輯好的、能實現(xiàn)特定數(shù)據(jù)操作功能的SQL代碼集。它與特定的數(shù)據(jù)庫相關(guān)聯(lián),存儲在SQL Server 服務(wù)器上。
(2)存儲過程的好處:
重復(fù)使用。存儲過程可以重復(fù)使用,從而減少數(shù)據(jù)庫開發(fā)人員的工作量
提高性能。存儲過程在創(chuàng)建的時候就進(jìn)行了編譯,將來使用的時候就不用再編譯。一般的SQL語句使用一次就編譯一次,所以使用存儲過程提高了效率
減少網(wǎng)絡(luò)流量。存儲過程位于服務(wù)器上,調(diào)用的時候只需要傳遞存儲過程的名稱以及參數(shù)就可以了,因此減低了網(wǎng)絡(luò)傳輸?shù)倪\輸量
安全性。參數(shù)化的存儲過程可以防止SQL注入***,而且可以將Grant、Deny、以及Revoke權(quán)限應(yīng)用于存儲過程
定義一個存儲過程:
create proc spAddStudents @name nvarchar(50)=null as begin transaction --事務(wù) insert into [StudentInfo].[dbo].[Students] (Name) values (@name) if @@ERROR<>0 begin rollback tran return end
創(chuàng)建一個實現(xiàn)加法計算并將運算結(jié)果作為輸出參數(shù)的存儲過程
create proc spAdd @value1 int, @value2 int, @result int output as select @result=@value1+@value2 go
執(zhí)行spAdd存儲過程
declare @value1 int declare @value2 int declare @result int set @value1=1 set @value2=1 exec spAdd @value1,@value2,@result output print convert(char(5),@value1) +'+'+convert(char(5),@value2) +'='+ convert(char(5),@result)
參考:http://www.xuebuyuan.com/2041347.html
文章題目:數(shù)據(jù)庫中的觸發(fā)器,索引,事務(wù)
鏈接分享:http://www.ef60e0e.cn/article/ppigsh.html