校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > SQLServer中的觸發器基本語法與作用

SQLServer中的觸發器基本語法與作用

熱門標簽:南通智能外呼系統怎么樣 南京怎么申請400這種電話 真3地圖標注 地圖標注可以編輯地名嗎 疫情時期電話機器人 地圖標注跑線下市場 臺灣外呼系統軟件 樂昌電話機器人 濮陽清豐400開頭的電話申請

什么是觸發器?

觸發器是在對表進行插入、更新或刪除操作時自動執行的存儲過程。 觸發器對表進行插入、更新、刪除的時候會自動執行的特殊存儲過程。觸發器一般用在check約束更加復雜的約束上面。觸發器和普通的存儲過程的區別是:觸發器是當對某一個表進行操作。諸如:update、insert、delete這些操作的時候,系統會自動調用執行該表上對應的觸發器。SQL Server 2005中觸發器可以分為兩類:DML觸發器和DDL觸發器,其中DDL觸發器它們會影響多種數據定義語言語句而激發,這些語句有create、alter、drop語句。

SQL Server為每個觸發器都創建了兩個專用表﹕Inserted表和Deleted表。

觸發器通常用于強制業務規則

觸發器是一種高級約束,可以定義比用CHECK 約束更為復雜的約束 :可執行復雜的SQL語句(if/while/case)、可引用其它

表中的列

觸發器定義在特定的表上,與表相關。

自動觸發執行

不能直接調用

是一個事務(可回滾)使用觸發器的好處觸發器可通過數據庫中的相關表實現級聯更改,不過,通過級聯引用完整性約束可以更有效地執行這些更改。觸發器可以強制比用CHECK約束定義的約束更為復雜的約束。與 CHECK 約束不同,觸發器可以引用其它表中的列。例如,觸發器可以使用另一個表中的 SELECT 比較插入或更新的數據,以及執行其它操作,如修改數據或顯示用戶定義錯誤信息。觸發器也可以評估數據修改前后的表狀態,并根據其差異采取對策。一個表中的多個同類觸發器(INSERT、UPDATE 或 DELETE)允許采取多個不同的對策以響應同一個修改語句。

DML觸發器分為:

1、 after觸發器(之后觸發)

a、 insert觸發器

b、 update觸發器

c、 delete觸發器

UPDATE 觸發器創建觸發的語法

CREATE TRIGGER trigger_name
ON table_name
[WITH ENCRYPTION]
FOR [DELETE, INSERT, UPDATE]
AS
T-SQL語句
GO

注意:WITH ENCRYPTION表示加密觸發器定義的SQL文本 DELETE, INSERT, UPDATE指定觸發器的類型 insert 觸發器示例

/*創建insert觸發器,在上網記錄表recordInfo上創建插入觸發器*/
create trigger tr_insert_recordInfo
on recordInfo
for insert
as
/*定義變量,用于臨時存儲插入的會員號、電腦編號和卡的編號*/
declare @cardId char()
declare @PCId int
declare @CardNumber char()
/*從inserted臨時表中獲取插入的記錄行的信息,包括電腦的編號、卡的編號*/
select @PCId=PCId,@cardId=CardId from inserted
/*根據電腦編號修改電腦的使用狀態*/
update PCInfo set PCUse= where PCId=@PCId
/*根據卡的編號查詢會員號*/
select @CardNumber=CardNumber from cardinfo where CardId=@cardid
/*顯示上機成功的信息*/
print '上機成功!會員號是:'+@CardNumber+'機器號是:'+convert(char(),@PCId)
go
----插入測試數據,會員號為的上機
set nocount on --不顯示sql語句影響的記錄行數
declare @CardId int ---聲明一個存儲卡的編號的變量
---根據會員號查處卡的編號
select @cardId=cardid from cardinfo where cardNumber='c' 
---向recordInfo表中插入一條記錄信息,卡的編號、電腦編號和上機時間
insert into recordInfo(cardId,PCId,beginTime) values(@cardId,,getDate())
----查看結果
select * from recordInfo
select * from PCInfo

update觸發器示例

---創建delete觸發器,在上網記錄表RecordInfo上創建刪除觸發器
create trigger tr_delete_recordInfo
on recordInfo
for delete
as
if exists(select * from sysobjects where name='backRecordInfo')
----如果backrecordInfo表存在,就添加記錄即可
insert into backRecordInfo select * from deleted
else
----創建backRecordInfo表,從deleted中獲取被刪除的數據
select * into backRecordInfo from deleted
print'backRecordInfo表備份數據成功,備份表中的數據為:'
select * from backRecordInfo
go
-------關鍵代碼------
----測試delete觸發器,刪除數據
set nocount on
delete from recordInfo
---查看結果
print'記錄表中的數據為:'
select * from recordInfo

delete觸發器示例

-------關鍵代碼------
create trigger tr_update_recordInfo
on recordInfo
for update
as
declare @beforePCId int
declare @afterPCId int
select @beforePCId =PCId from deleted
select @afterPCId=PCID from inserted
---根據電腦編號修改使用狀態-----
---根據以前使用的電腦編號把電腦的使用狀態改為:
update PCInfo set PCUse= where PCId=@beforePCId
---根據現在使用的電腦編號把電腦的使用狀態改為:
update PCInfo set PCUse= where PCId=@afterPCId
----顯示電腦換機成功
print'換機成功!從'+convert(varchar(),@beforePCId)+'號電腦換到'+convert(varchar(),@afterPCId)+'號電腦'
go
/*測試update觸發器,修改電腦編號*/
--顯示更改前,記錄表中的數據
print'更改前,記錄表中的數據'
select * from recordInfo
--顯示更改前,電腦表中的數據
print'更改前,電腦表中的數據'
select * from PCInfo
set nocount on
---把電腦號為的改為
update recordInfo set PCId= where PCId= 
---查看結果
print'更改后,記錄表中的數據'
select * from recordInfo
print'更改后,電腦表中的數據'
select * from PCInfo

instead of觸發器的使用 instead of觸發器的使用范圍,instead of 觸發器可以同時在數據表和視圖中使用。通常在以下幾種情況下,建議使用instead of觸發器: 數據庫里的數據禁止修改:例如電信部門的通話記錄是不能修改的,一旦修改,則通話費用的計數將不準確。 有可能要回滾修改的SQL語句 在視圖中使用觸發器 用自己的方式去修改數據 instead of觸發器示例

---創建update觸發器,在上網記錄表recordInfo上創建修改(列)觸發器
create trigger tr_updateColum1_recordInfo
on recordInfo
instead of insert
as
declare @cardbalance int --聲明用于存儲用戶余額的變量
declare @CardId int --聲明用于存儲用戶卡的編號的變量
declare @PCId int --聲明用于存儲電腦編號的變量
---inserted臨時表中獲取插入的記錄行信息,包括電腦編號、卡的編號
select @cardId=cardId,@PCId=PCId from inserted
select @cardbalance=cardBalance from cardInfo where CardId=@CardId
print'您的余額為:'+convert(varchar(10),@cardBalance) ---打印余額信息
if(@cardBalance2) ---判斷余額多少,看能否正常上機
print'余額小于元,不能上機。請盡快充值!'
else
----根據電腦的編號修改電腦的使用狀態更改為正在使用
update PCInfo set PCUse=1 where PCId=@PCId
----向recordInfo表插入上機記錄
insert into recordInfo(cardId,PCId,beginTime)values(@CardId,@PCId,getdate())
print'上機成功'
-------關鍵代碼------
set nocount on
declare @cardId int ---聲明一個存儲卡的編號的變量
---根據會員號查出卡的編號
select @cardId=cardId from cardInfo where cardNumber='c001'
----向recordInfo表中插入一條記錄信息,卡的編號、電腦的編號和上機時間
insert into recordInfo(cardId,PCId,beginTime)values(@cardId,1,getdate())
select * from recordInfo
select * from PCInfo

以上所述是小編給大家介紹的SQLSever中的觸發器基本語法與作用的相關內容,希望對大家有所幫助!

您可能感興趣的文章:
  • SQL Server 觸發器 表的特定字段更新時,觸發Update觸發器
  • sqlserver 禁用觸發器和啟用觸發器的語句
  • SQLServer觸發器創建、刪除、修改、查看示例代碼
  • 用sql腳本創建sqlserver數據庫觸發器范例語句
  • SQL Server觸發器及觸發器中的事務學習
  • 在登錄觸發器錯誤情況下連接SQL Server的方法
  • sqlserver 觸發器教程
  • sqlserver 觸發器實例代碼
  • sqlserver中觸發器+游標操作實現
  • Sql Server觸發器的使用
  • SQL SERVER 觸發器介紹
  • SQL SERVER中各類觸發器的完整語法及參數說明

標簽:馬鞍山 福建 河北 通遼 廣安 陜西 阿里 南京

巨人網絡通訊聲明:本文標題《SQLServer中的觸發器基本語法與作用》,本文關鍵詞  SQLServer,中的,觸發器,基本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQLServer中的觸發器基本語法與作用》相關的同類信息!
  • 本頁收集關于SQLServer中的觸發器基本語法與作用的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产三级欧美三级日产三级99| 6080午夜不卡| 国产婷婷色一区二区三区四区| 国产在线视频一区二区| 精品国产髙清在线看国产毛片 | 国产亚洲欧洲997久久综合 | av成人动漫在线观看| ㊣最新国产の精品bt伙计久久| 99久久免费精品高清特色大片| 艳妇臀荡乳欲伦亚洲一区| 91豆麻精品91久久久久久| 亚洲电影第三页| 亚洲精品一区二区三区四区高清 | 久久婷婷一区二区三区| 国产乱码精品一区二区三区五月婷| 日韩欧美中文一区| 偷拍亚洲欧洲综合| 国产精品久久三| 国产精品综合二区| 一区二区三区欧美久久| 欧美一区二区视频在线观看| 免费亚洲电影在线| 欧美极品少妇xxxxⅹ高跟鞋| 成人久久18免费网站麻豆| 一区二区久久久| 国产精品免费久久久久| 欧美伊人久久大香线蕉综合69| 亚洲韩国精品一区| 国产免费成人在线视频| 欧美少妇xxx| av午夜精品一区二区三区| 日韩高清在线电影| 日本一区二区三区电影| 欧美一区二区三区日韩| 久久国产三级精品| 午夜亚洲福利老司机| 亚洲码国产岛国毛片在线| 久久久亚洲高清| 精品福利视频一区二区三区| 精品国产乱码久久久久久图片| 制服视频三区第一页精品| 7777精品伊人久久久大香线蕉的| 717成人午夜免费福利电影| 亚洲精品一区二区三区影院| 国产精品无码永久免费888| 一区二区三区不卡视频在线观看| 日韩av高清在线观看| 91美女在线视频| 国产拍欧美日韩视频二区| 亚洲图片自拍偷拍| 97久久超碰精品国产| 久久夜色精品国产欧美乱极品| 亚洲一区二区精品视频| 国产精品亚洲视频| 精品久久久久99| 亚洲国产精品成人综合色在线婷婷 | 首页综合国产亚洲丝袜| av高清不卡在线| 色悠悠久久综合| 亚洲视频资源在线| 岛国精品在线观看| 国产欧美一区二区精品婷婷| 亚洲一二三区在线观看| www.欧美日韩国产在线| 国产精品九色蝌蚪自拍| 日韩精品福利网| 88在线观看91蜜桃国自产| 综合欧美一区二区三区| 裸体一区二区三区| 欧美福利电影网| 香蕉成人啪国产精品视频综合网| 国产91精品在线观看| 日韩一区二区免费在线观看| 亚洲一二三区视频在线观看| 极品美女销魂一区二区三区| 欧美性受xxxx| 亚洲丝袜美腿综合| 欧美日韩国产影片| 免费成人你懂的| 欧美一区二区三区在线观看| 久久久久久久久蜜桃| 国产一区二区三区综合| 欧美草草影院在线视频| 午夜在线成人av| 欧美一区二区播放| 国产精品综合一区二区三区| 欧美草草影院在线视频| 国产高清亚洲一区| 日本一区二区高清| 欧美日韩亚洲丝袜制服| 午夜激情久久久| 欧美一区永久视频免费观看| 亚洲黄色片在线观看| 91福利国产精品| 精品美女在线播放| a在线播放不卡| 亚洲欧洲日韩综合一区二区| 69久久99精品久久久久婷婷| 91在线观看免费视频| 成人午夜在线视频| 成人av资源在线| 日韩激情av在线| 亚洲天堂久久久久久久| 精品三级在线看| 91麻豆精品91久久久久久清纯| 久久精品二区亚洲w码| 欧美日韩精品系列| 麻豆精品视频在线观看| 国产精品美女视频| 99国产欧美久久久精品| 蜜桃一区二区三区在线观看| 国产精品成人网| 日韩一区二区免费高清| 色天使色偷偷av一区二区| 久久99热国产| 一区二区三区在线观看视频| 国产视频不卡一区| 国产精品综合网| 成人的网站免费观看| 麻豆久久一区二区| 国产精品理伦片| 亚洲国产精品嫩草影院| 国产精品嫩草影院av蜜臀| 久久精品国产999大香线蕉| 国内精品伊人久久久久av影院 | 欧美系列一区二区| 中文字幕第一区综合| 韩日欧美一区二区三区| 亚洲丝袜精品丝袜在线| 欧美精品自拍偷拍| 成人免费毛片嘿嘿连载视频| 亚洲色图在线播放| 亚洲自拍另类综合| av男人天堂一区| 国产三级精品在线| 波多野结衣中文字幕一区| 99久久婷婷国产精品综合| 成人av电影在线网| 91热门视频在线观看| 99久久婷婷国产精品综合| caoporm超碰国产精品| 色综合视频一区二区三区高清| 91女厕偷拍女厕偷拍高清| 91污在线观看| 欧美在线观看视频一区二区三区| 欧洲生活片亚洲生活在线观看| 日本道免费精品一区二区三区| 色偷偷久久人人79超碰人人澡| 色哟哟在线观看一区二区三区| 色婷婷国产精品久久包臀| 欧美性猛交xxxx乱大交退制版| 欧美日韩在线播放| 亚洲午夜免费福利视频| 亚洲男人天堂av| 亚洲男人电影天堂| 天堂在线亚洲视频| 午夜成人在线视频| 国产最新精品免费| 国产乱色国产精品免费视频| 亚洲综合小说图片| 午夜电影久久久| 久久成人免费日本黄色| 日日夜夜精品视频天天综合网| 亚洲成人av资源| 精品综合久久久久久8888| 韩国v欧美v日本v亚洲v| 不卡视频免费播放| 欧洲精品一区二区三区在线观看| 91精品国产高清一区二区三区| 欧美一区二区私人影院日本| 亚洲成人免费在线观看| 国产99久久久精品| 亚洲国产精品成人综合| 97aⅴ精品视频一二三区| 欧美精品一区二区蜜臀亚洲| 图片区日韩欧美亚洲| 欧美人妇做爰xxxⅹ性高电影| 亚洲综合免费观看高清完整版在线 | 成人综合在线视频| 久久青草国产手机看片福利盒子| 国产成人综合网站| 亚洲成人精品一区二区| 国产精品久久久一本精品| 五月天一区二区| 美女网站色91| 99麻豆久久久国产精品免费优播| 日韩欧美视频在线 | 日韩av中文字幕一区二区三区| 国产在线观看一区二区| 日本乱码高清不卡字幕| 日韩一区二区三区观看| 久久久久国产免费免费| 婷婷综合另类小说色区| 99re8在线精品视频免费播放| 精品理论电影在线| 婷婷久久综合九色综合伊人色| 亚洲女同一区二区| av在线不卡网| 国产精品久久久久久久蜜臀| 成人免费黄色大片|