SQLSever中的觸發器根本語法與感化。本站提示廣大學習愛好者:(SQLSever中的觸發器根本語法與感化)文章只能為提供參考,不一定能成為您想要的結果。以下是SQLSever中的觸發器根本語法與感化正文
有一個你們能夠從未據說的風趣的CSS功效是火狐閱讀器首創的-moz-element屬性,應用它,你可以用網頁上隨意率性的內容作為配景,跟配景圖的後果類似。
HTML和CSS代碼
假定你的網頁裡有如許一塊HTML內容,它有CSS款式,外面有文本信息,還有一些inline的CSS屬性:
<div id="mozElementBack"
>
我要成為配景
</div>
下面的代碼既有內部款式,又有inline款式,這不影響-moz-element的應用,如今我們便可以將這塊HTML作為其它元素的配景(background):
#mySpecialElement {
/* “mozElementBack” 是以後頁裡某個元素的ID */
background: -moz-element(#mozElementBack) repeat;
}
異常簡略,只須要將-moz-element設置成元素的ID,如許,這個元素所包括的區域就會成為配景,你還可使用background-repeat等參數潤飾它,跟通俗的配景圖的用法一樣。但以頁面元素做配景的一年夜亮點是,當你更新配景元素的HTML內容和款式時,配景同步產生變更,也就是說,你可以把它當做一個“活”配景!
一個奇異的CSS屬性,不是嗎?這類以一塊HTML內容做為配景的用處可以異常普遍,感激Mozilla。你能想出在實際項目中這個功效可以用在甚麼處所嗎?我先想到的一點就是用-moz-element將一段文字做配景,而這些文字是用JavaScript靜態寫上去的。一個風趣的CSS屬性!
可采用多個分歧的對策以呼應統一個修正語句。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(@cardBalance<2) ---斷定余額若干,看可否正常上機 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中的觸發器根本語法與感化的相干內容,願望對年夜家有所贊助!