亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫中的觸發器,索引 ,事務

發布時間:2020-06-14 21:53:27 來源:網絡 閱讀:363 作者:sunshine225 欄目:數據庫

一.觸發器

 觸發器是一種實施復雜數據完整性的特殊存儲過程,在對表或視圖執行update、insert或delete語句時自動觸發執行,以防止對數據進行不正確、未授權或不一致的參數。

/*創建觸發器*/
creat [temp|temporary] trigger name
[before|after] [insert|update|delete of columns] on table
begin
SQL語句
end;

  觸發器能夠維持兩個表間的參照完整性,就像外鍵一樣。外鍵執行這個任務的效率更高,因為它們在數據改變之前被測試,而不像觸發器在數據改變后才觸發。


二.索引

(1)定義:

  1. 索引是數據庫的對象之一,索引是為了加速對表中數據行的檢索而創建的一種分散的一種存儲結構。

    索引是針對一個表而建立的,它是由數據頁面以外的索引頁面組成的 

create unique clustered index book_id_index--惟一性聚簇索引
on book(book_id asc)
with 
fillfactor=50 /*填充因子50%*/


(2)索引的分類

  1. 聚簇索引

    數據表的物理順序和索引表的順序相同,它根據表中的一列或多列值的組合排列記錄

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

三.事務

(1)定義:

  事務是指一個操作序列,這些操作序列要么都被執行,要么都不被執行,它是一個不可分割的工作單元。

(2)語法步驟:

  1. 事務開始:BEGIN TRANSACTION 

  2. 事務提交:COMMIT TRANSACTION 

  3. 事務回滾:ROLLBACK TRANSACTION 

  4. 判斷某條語句執行是否出錯:全局變量@@ERROR; 

    @@ERROR只能判斷當前一條T-SQL語句執行是否有錯,為了判斷事務中所有T-SQL語句是否有錯,我們需要對錯誤進行累計; 例:SET @errorSum=@errorSum+@@error


四.存儲過程

(1)定義:

  存儲過程是一系列預先編輯好的、能實現特定數據操作功能的SQL代碼集。它與特定的數據庫相關聯,存儲在SQL Server 服務器上。

(2)存儲過程的好處:

  1. 重復使用。存儲過程可以重復使用,從而減少數據庫開發人員的工作量

  2. 提高性能。存儲過程在創建的時候就進行了編譯,將來使用的時候就不用再編譯。一般的SQL語句使用一次就編譯一次,所以使用存儲過程提高了效率

  3. 減少網絡流量。存儲過程位于服務器上,調用的時候只需要傳遞存儲過程的名稱以及參數就可以了,因此減低了網絡傳輸的運輸量

  4. 安全性。參數化的存儲過程可以防止SQL注入***,而且可以將Grant、Deny、以及Revoke權限應用于存儲過程

  定義一個存儲過程:

create proc spAddStudents
  @name  nvarchar(50)=null
  as
  begin transaction --事務
  insert into [StudentInfo].[dbo].[Students]
  (Name)
  values
  (@name)
  if @@ERROR<>0
  begin
  rollback tran
  return
  end

創建一個實現加法計算并將運算結果作為輸出參數的存儲過程

 create proc spAdd
  @value1 int,
  @value2 int,
  @result int output
  as
  select @result=@value1+@value2
  go

執行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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中西区| 满城县| 涿州市| 香格里拉县| 福州市| 嵊泗县| 西乌珠穆沁旗| 抚顺市| 洛川县| 衡山县| 新河县| 浠水县| 凉山| 醴陵市| 泾阳县| 额尔古纳市| 波密县| 佳木斯市| 田阳县| 易门县| 岳普湖县| 神池县| 辽阳县| 婺源县| 星子县| 尉氏县| 莲花县| 宜兴市| 通州市| 东光县| 宜兰县| 晋宁县| 上饶市| 靖州| 仙游县| 巴楚县| 武城县| 务川| 宣恩县| 东城区| 潜江市|