成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Sql Server觸發器使用原理的描述

數據庫 SQL Server
我們今天主要是和大家一起分享的是Sql Server觸發器的基本原理,以及對其在實際操作中要用到的相關功能的描述。

以下的文章主要向大家講述的是Sql Server觸發器的使用原理,以及對Sql Server觸發器的實際操作功能還有對觸發器三種實際操作的具體分析,以下就是文章的主要內容的詳細描述,希望會給你帶來一些幫助在此方面。

Sql Server觸發器:

1、觸發器的 '本質':

 

觸發器是一種特殊的存儲過程,它不能被顯式地調用,

 

而是在往表中插入記錄、更改記錄或者刪除記錄時,當事件發生時,才被

自動地激活。

2、這樣做帶來的 '功能':

 

觸發器可以用來對表實施復雜的完整性約束,保持數

 

據的一致性,當觸發器所保護的數據發生改變時,Sql Server觸發器會自動被激活,

響應同時執行一定的操作(對其它相關表的操作),從而保證對數據的不完整

性約束或不正確的修改。

觸發器可以查詢其它表,同時也可以執行復雜的T-SQL語句。觸發器和引

 

發觸發器執行的命令被當作一次事務處理,因此就具備了事務的所有特征。

注意: '事務具備什么特征?在觸發器中的作用?'

 

如果發現引起觸發器執行的T-SQL語句執行了一個非法操作,比如關于其它表的

相關性操作,發現數據丟失或需調用的數據不存在,那么就回滾到該事件執行

前的SQL SERVER數據庫狀態。

3、觸發器的作用:

 

Sql Server觸發器可以對數據庫進行級聯修改,這一點剛才已經說過了。

 

需要說明的是: '觸發器和約束的關系和區別'

 

(1)一般來說,使用約束比使用觸發器效率更高。

 

(2)同時,觸發器可以完成比CHECK約束更復雜的限制。

 

說明:

2.1 與CHECK約束不同,在觸發器中可以引用其它的表。

2.2 觸發器可以發現改變前后表中數據的不一致,并根據這些不同來進行相應

的操作。

2.3 對于一個表不同的操作(INSERT、UPDATE、DELETE)可以采用不同的觸

發器,即使是對相同的語句也可以調用不同的觸發器來完成不同的操作。

舉例1:在簽訂一份訂單時,貨物的庫存量應減少。

 

問?這應用了觸發器的什么特征?CHECK約束能解決嗎?

舉例2:正在進行整理的貨物不能下訂單。

 

問?這應用了觸發器的什么特征?CHECK約束能解決嗎?

4、對觸發器3種操作的分析:

 

在SQL SERVER為每個Sql Server觸發器都創建了兩個專用表:inserted表和deleted表。

這是兩個邏輯表,由系統來維護,在觸發執行時存在,在觸發結束時消失。

這樣有什么用途?

 

帶著問題看,具體操作步驟和過程:

 

(1)deleted表存放由于執行delete或update語句而要從表中刪除的所有行。

 

在執行delete或update操作時,被刪除的行從激活觸發器的表中被移動(move)到deleted

表,這兩個表不會有共同的行。

(2)inserted表存放由于執行insert或update語句而要向表中插入的所有行。

 

在執行insert或update事物時,新的行同時添加到激活觸發器的表中和inserted表中,

inserted表的內容是激活觸發器的表中新行的拷貝。

說明:update事務可以看作是先執行一個delete操作,再執行一個insert操作,舊的行首先

 

被移動到deleted表,讓后新行同時添加到激活觸發器的表中和inserted表中。

11.1.3 instead of 和 after 觸發器

 

主要包括定義和應用范圍條件,操作執行時機;

11.2 創建觸發器

 

1、考慮為什么要設計出發器,為解決什么問題而設計?

2、應制定的內容:為什么,大家思考一下?不知道,看下面的例子,全看完!

 

T-SQL語句創建Sql Server觸發器

 

語法結構:

create trigger 觸發器名 on 表或視圖 for|after|instead of --操作時機 insert,update,delete as sql語句

作業:

 

(要求:在northwind表中建立2個表:cust_test和order_test)

cust_test: CustomerID char(5) PK order_test: CustomerID char(5)--對應關系 Custcity Orderid PK Custname OrderNames CStatus int OStatus int --狀態 Cstorage int Orders int --定購量和庫存量 Cdate date Odate date--日期

作業1:

 

在cust_test表中建立刪除觸發器,實現上述2表的級聯刪除。

作業2:

 

在order_test表建立insert觸發器,當向order_test表插入一行,如果cust_test表中對應

記錄status值為1,說明處于準備狀態不能寫入該數據。

答案1:

use northwind go create trigger cust_orders_del1 on Cust_test after delete as delete from order_test where CustomerID in (select CustomerID from deleted) go 答案2: use northwind go create trigger cust_orders_ins2 on order_test after insert as if (select cstatus from cust_test,inserted where cust_test.customerid=inserted.customerid)=1 begin print 'The Goods is being processed' rollback transaction end go

以上的相關內容就是對Sql Server觸發器的介紹,望你能有所收獲。

【編輯推薦】

  1. SQL Server 2000優化SELECT 語句的方案介紹
  2. SQL Server 2000文件損壞的修復方案
  3. 改善SQL Server安全規劃的6步驟
  4. SQL Server 2000重建索引的實際操作流程
  5. SQL Server備份文件中對現存數據庫的導入

 

責任編輯:佚名 來源: 網界網
相關推薦

2009-04-07 13:56:03

SQL Server觸發器實例

2010-06-30 09:36:25

SQL Server

2010-07-16 10:19:31

2010-11-12 15:35:55

SQL Server約

2010-10-20 14:34:48

SQL Server觸

2010-09-13 17:03:34

sql server觸

2010-11-10 13:37:01

SQL Server觸

2010-07-06 14:47:03

SQL Server數

2010-10-22 11:10:43

SQL Server觸

2010-11-08 11:49:24

SQL Server管

2010-09-01 16:40:00

SQL刪除觸發器

2010-10-19 15:31:40

sql server觸

2010-07-05 11:09:55

SQL Server觸

2011-03-03 09:30:24

downmoonsql登錄觸發器

2010-07-05 08:31:25

SQL Server快

2010-07-07 09:47:04

SQL Server索

2019-10-22 07:50:45

SqlServer數據庫觸發器

2010-09-13 16:46:10

SQL Server觸

2011-03-28 10:05:57

sql觸發器代碼

2019-12-02 11:13:38

數據庫觸發器SQLServer
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九热精 | 97色伦网| 欧美a级成人淫片免费看 | 福利影院在线看 | 亚洲va国产日韩欧美精品色婷婷 | 亚洲区在线 | av中文字幕在线播放 | 日韩在线电影 | 国产一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 国产高清在线 | 91视视频在线观看入口直接观看 | 成人欧美一区二区三区在线播放 | 色婷婷久久久亚洲一区二区三区 | 91网视频 | 一区二区三区日韩精品 | 国产激情视频在线免费观看 | 国产精品视频网 | 国产一区二区精华 | 日批av| 亚洲成人中文字幕 | 亚洲精品乱码久久久久久9色 | 久久精品91久久久久久再现 | 亚洲一区二区三区欧美 | 性色av一区 | 久久国产精品免费一区二区三区 | 91社影院在线观看 | 91亚洲国产成人精品一区二三 | 黄色电影在线免费观看 | 日韩在线欧美 | 成人一级视频在线观看 | 在线观看国产www | 精品久久国产视频 | 久久综合婷婷 | 亚洲一区视频在线 | 日韩成年人视频在线 | 国产一区二区三区四区在线观看 | a欧美| av一级在线观看 | 精品亚洲一区二区三区 | www.成人免费视频 |