新聞中心
在sql server中,建立sql server觸發(fā)器后,會(huì)生成deleted 和inserted表,這兩張表可以理解為臨時(shí)表,下面就為您介紹sql server觸發(fā)器中自動(dòng)生成的臨時(shí)表,供您參考。

創(chuàng)新互聯(lián)長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為臨清企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站制作,臨清網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
sql server觸發(fā)器中,系統(tǒng)自動(dòng)會(huì)生成兩張臨時(shí)表,分別是deleted 和inserted 它們是邏輯(概念)表。也可理解為是臨時(shí)表。
為方便理解,可以這么來認(rèn)為Inserted表和Deleted表的作用:Inserted表就是放新的記錄,Delete表就是放舊的記錄。并且,它們的表結(jié)構(gòu)與原表是完全相同的。
1。當(dāng)你插入時(shí),要插入的記錄是新的,所以可以在Insert表中找到。
如:table1中本來就有N條記錄,但執(zhí)行 insert into table1 value('1') 那么,在table1的sql server觸發(fā)器的 Inserted表中,有且僅有同樣一條記錄。
select * from Inserted ,結(jié)果為: 1 而不是table1的N+1條記錄。
2。當(dāng)你更新時(shí),要更新的記錄是新的,所以可以在Inserted表中找到,被更新的記錄是舊的,所以可以在Deleted表中找到。
如:有條記錄 1 要改為 2
select * from Deleted 的結(jié)果為1 select * from Inserted 的結(jié)果為2
3。當(dāng)你刪除時(shí),要?jiǎng)h除的記錄是舊的,所以可以在Deleted表中找到。
如:表中有1,2,3,4 四條記錄,刪除其中三條,則 select * from deleted 的結(jié)果為 1,2,3
當(dāng)對(duì)某張表建立sql server觸發(fā)器后,分3種情況討論
1.插入操作(Insert)
Inserted表有數(shù)據(jù),Deleted表無數(shù)據(jù)
2.刪除操作(Delete)
Inserted表無數(shù)據(jù),Deleted表有數(shù)據(jù)
3.更新操作(Update)
Inserted表有數(shù)據(jù)(新數(shù)據(jù)),Deleted表有數(shù)據(jù)(舊數(shù)據(jù))
【編輯推薦】
帶您了解sql server臨時(shí)表
SQL SERVER恢復(fù)的方法
帶您深入了解SQL Server事務(wù)
SQL Server定時(shí)作業(yè)的設(shè)置方法
SQL Server連接錯(cuò)誤的解決方法
標(biāo)題名稱:sqlserver觸發(fā)器中自動(dòng)生成的臨時(shí)表
本文地址:http://www.5511xx.com/article/cojesop.html


咨詢
建站咨詢
